वहाँयह जांचने के लिए कि जावा में एक इंटीजर शून्य या शून्य है या नहीं?
if (myInteger != null && myInteger != 0) { ... }
examle के लिए लिखने के लिए और अधिक संक्षिप्त तरीके से स्ट्रिंग्स के लिए आप StringUtils.isBlank()
वहाँयह जांचने के लिए कि जावा में एक इंटीजर शून्य या शून्य है या नहीं?
if (myInteger != null && myInteger != 0) { ... }
examle के लिए लिखने के लिए और अधिक संक्षिप्त तरीके से स्ट्रिंग्स के लिए आप StringUtils.isBlank()
उपयोग कर सकते हैं myInteger
की आपके क्रियान्वयन के आधार है, (यानी अगर पूर्णांक संपत्ति myInteger
भीतर बॉक्स है टाइप करें Integer
या अनबॉक्स किए गए आदिम int
), आपको केवल एक सशर्त लिखना होगा।
Integer
एस वास्तविक वस्तुएं हैं, जिसका अर्थ है कि उनके पास null
होने की क्षमता है। कहा जा रहा है कि वे एक मूल्य के रूप में 0 पकड़ भी सकते हैं। तो, इस मामले में आपको दोनों चेक करना होगा।
int
एक आदिम है और null
का मान नहीं रख सकता है। इस मामले में आपको केवल यह जांचना होगा कि आपकी int
संपत्ति 0 के बराबर नहीं है।
मैं इसके लिए एक कठिन स्थिति का उपयोग करूंगा। कुछ की तरह:
public static boolean isNullorZero(Integer i){
return 0 == (i == null ? 0 : i);
}
यह, मैं मानता हूँ पढ़ने योग्य नहीं है;)
:
if (Optional.ofNullable(myInteger).orElse(0).intValue() != 0) {
...
}
ध्यान दें कि Optional
पूरी तरह से सब पर अगर हालत से बचने के लिए आप मदद कर सकते हैं, के आधार आपके उपयोग के मामले में ...
वास्तव में' संक्षेप 'का विशाल अर्थ है ... –
हाँ, मान लीजिए कि यह" बदसूरत सादा "समाधान से लंबा है। लेकिन यही कारण है कि मैंने यह जोड़ा कि वैकल्पिक इन चेकों से बचने में मदद कर सकता है ... –
यह अभी भी myInteger को शून्य नहीं होने की जांच करने में विफल रहता है और NullPointerException के साथ विफल हो जाएगा। चूंकि लक्ष्य वस्तु पूर्णांक है, इसलिए हमें दोनों शून्य और शून्य नहीं की जांच करनी है। – acveer
@ राफलालास्कोव्स्की जो कि प्रकार पर निर्भर करता है, यानी 'int' बनाम' इंटेगर '(बाद वाला _can_ शून्य हो)। – Thomas
@ राफलालास्कोव्स्की वह 'इंटीगर' नहीं 'int' – Sweeper
' 'myInteger' प्रकार 'int' या' Integer' है? यदि यह पहला है तो यह 'शून्य' नहीं हो सकता है। – skw