2016-12-16 7 views
10

वहाँयह जांचने के लिए कि जावा में एक इंटीजर शून्य या शून्य है या नहीं?

if (myInteger != null && myInteger != 0) { ... } 

examle के लिए लिखने के लिए और अधिक संक्षिप्त तरीके से स्ट्रिंग्स के लिए आप StringUtils.isBlank()

+1

@ राफलालास्कोव्स्की जो कि प्रकार पर निर्भर करता है, यानी 'int' बनाम' इंटेगर '(बाद वाला _can_ शून्य हो)। – Thomas

+2

@ राफलालास्कोव्स्की वह 'इंटीगर' नहीं 'int' – Sweeper

+0

' 'myInteger' प्रकार 'int' या' Integer' है? यदि यह पहला है तो यह 'शून्य' नहीं हो सकता है। – skw

उत्तर

0

उपयोग कर सकते हैं myInteger की आपके क्रियान्वयन के आधार है, (यानी अगर पूर्णांक संपत्ति myInteger भीतर बॉक्स है टाइप करें Integer या अनबॉक्स किए गए आदिम int), आपको केवल एक सशर्त लिखना होगा।

Integer एस वास्तविक वस्तुएं हैं, जिसका अर्थ है कि उनके पास null होने की क्षमता है। कहा जा रहा है कि वे एक मूल्य के रूप में 0 पकड़ भी सकते हैं। तो, इस मामले में आपको दोनों चेक करना होगा।

int एक आदिम है और null का मान नहीं रख सकता है। इस मामले में आपको केवल यह जांचना होगा कि आपकी int संपत्ति 0 के बराबर नहीं है।

2

मैं इसके लिए एक कठिन स्थिति का उपयोग करूंगा। कुछ की तरह:

public static boolean isNullorZero(Integer i){ 
    return 0 == (i == null ? 0 : i); 
} 

यह, मैं मानता हूँ पढ़ने योग्य नहीं है;)

3
जावा 8 के साथ

:

if (Optional.ofNullable(myInteger).orElse(0).intValue() != 0) { 
    ... 
} 

ध्यान दें कि Optional पूरी तरह से सब पर अगर हालत से बचने के लिए आप मदद कर सकते हैं, के आधार आपके उपयोग के मामले में ...

+1

वास्तव में' संक्षेप 'का विशाल अर्थ है ... –

+0

हाँ, मान लीजिए कि यह" बदसूरत सादा "समाधान से लंबा है। लेकिन यही कारण है कि मैंने यह जोड़ा कि वैकल्पिक इन चेकों से बचने में मदद कर सकता है ... –

+0

यह अभी भी myInteger को शून्य नहीं होने की जांच करने में विफल रहता है और NullPointerException के साथ विफल हो जाएगा। चूंकि लक्ष्य वस्तु पूर्णांक है, इसलिए हमें दोनों शून्य और शून्य नहीं की जांच करनी है। – acveer

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

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