2008-10-08 13 views
81

कुछ टाइपिंग और मेरे कोड को स्पष्ट करने के लिए, क्या निम्न विधि का मानक संस्करण है?क्या कोई जावा मानक "शून्य या बराबर" स्थैतिक विधि है?

public static boolean bothNullOrEqual(Object x, Object y) { 
    return (x == null ? y == null : x.equals(y)); 
} 
+6

बस मेरे दो सेंट। मैं उपयोग करूंगा: सार्वजनिक स्थैतिक बुलियन दोनों नलऑरक्वाल (ऑब्जेक्ट एक्स, ऑब्जेक्ट वाई) { रिटर्न (x == y || (x! = Null && x.equals (y))); } आईएमएचओ, यह नौसिखिया प्रोग्रामर के लिए अधिक पठनीय है। –

+0

क्या कोई कह सकता है कि ऐसी चीज उपयोगी है? – anjanb

+2

यह आपको अपने बराबर() विधि में शून्य जांच को छोड़ने की अनुमति देता है। –

उत्तर

161

जावा 7 के साथ अब आप सीधे एक अशक्त सुरक्षित कर सकते हैं के बराबर होती है:

Objects.equals(x, y)

+0

यह विधि गूगल्स निर्भरता इंजेक्शन-लाइबेरी गुइस में भी लागू की गई है। – Niels

+1

वसंत भी इसी तरह की विधि लागू करता है: ऑब्जेक्ट यूटिल्स क्लास – jpsstavares

+1

Google गुवा में ऑब्जेक्ट्स .equals() के साथ भी nullSafeEquals। – Spina

22

अगर कुछ संयोग से आप जकार्ता कॉमन्स लाइब्रेरी का उपयोग नहीं है ObjectUtils.equals() और अन्य उपयोगी कार्यों के बहुत सारे हैं।

संपादित करें: सवाल शुरू में

0

नहीं, मैं हर परियोजना मैं मुझे लगता है कि पर किया गया है पर अपने ही लिखा है पढ़ने में भूलना।

6

आप कर रहे हैं (जकार्ता कॉमन्स पुस्तकालय ObjectUtils.equals() जावा 7 के साथ अप्रचलित हो गया है) < 1.7 का उपयोग करके, लेकिन गुवा उपलब्ध है: Objects.equal(x, y)

संबंधित मुद्दे