2010-03-31 5 views
6

पहली अनुक्रमणिका शून्य (खाली) पर सेट है, लेकिन यह सही आउटपुट मुद्रित नहीं करती है, क्यों?क्यों सूचीबद्ध नहीं है .get (0) .equals (शून्य) काम करते हैं?

//set the first index as null and the rest as "High" 
String a []= {null,"High","High","High","High","High"}; 

//add array to arraylist 
ArrayList<Object> choice = new ArrayList<Object>(Arrays.asList(a)); 

for(int i=0; i<choice.size(); i++){ 
    if(i==0){ 
     if(choice.get(0).equals(null)) 
      System.out.println("I am empty"); //it doesn't print this output 
    } 
} 
+1

एक चाल: 'System.out.println (Arrays.asList (शून्य," उच्च "," उच्च "," उच्च "," उच्च "," उच्च ")); 'जो कुछ भी आप चाहते हैं उसके बिना करता है अतिरिक्त कोड मैं इसे "वही" कहता हूं क्योंकि आपको शायद पता नहीं था कि आप nulls – Pyrolistical

उत्तर

6

मेरा मानना ​​है कि आप क्या करना चाहते हैं, तो परिवर्तन है

if(choice.get(0).equals(null)) 

को
if(choice.get(0) == null)) 
+0

प्रिंट कर सकते हैं धन्यवाद :-) बहुत अधिक। – Jessy

+0

कोई समस्या नहीं, गहराई से कारण के लिए क्लीटस का उत्तर देखें, क्यों यह अपेक्षित काम नहीं करता था। –

6

आप चाहते हैं:

for (int i=0; i<choice.size(); i++) { 
    if (i==0) { 
    if (choice.get(0) == null) { 
     System.out.println("I am empty"); //it doesn't print this output 
    } 
    } 
} 

अभिव्यक्ति choice.get(0).equals(null) एक NullPointerException क्योंकि फेंक चाहिएchoice.get(0)null है और आप इस पर एक फ़ंक्शन आज़माएं और कॉल करें। इस कारण से anyObject.equals(null)हमेशा वापसी false होगा।

+0

आपको बहुत धन्यवाद :-) – Jessy

+0

'बराबर (शून्य) 'के लिए सत्य लौटने पर एपीआई अनुबंध का उल्लंघन करता है, वास्तव में यह काफी संभव है। –

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