7

में डिबगिंग करते समय सूची मूल्य को संशोधित करने के लिए मुझे किसी एप्लिकेशन को डिबग करने के दौरान एक चर बदलने की आवश्यकता है। अब तक यह केवल मूल चर था जो सीधे सेट किया जा सकता था। अब मुझे एक सरणी साफ़ करने की आवश्यकता है ताकि isEmpty() सत्य लौटाए;IntelliJ

ArrayList<String> someList = new ArrayList<String>; 
someList.add("1"); 
... 
if(someList.isEmpty()){ //break point 
//need to enter here 
} 

IntelliJ डिबगर में मैं देख रहा हूँ:

someList={[email protected]} size=1 

मैं डिबगर की 'setValue' विधि का इस्तेमाल किया और करने की कोशिश की: new ArrayList<String>() या someList = new ArrayList<String>()

जो

someList={[email protected]} size=0 
में जो परिणाम

हालांकि अगर मैं जारी रहता हूं तो मुझे एक NullPointerException मिलता है जब यह लक्षण होता है () कहा जाता है। तो मेरा प्रश्न: एनपीई प्राप्त किए बिना मैं एक खाली ऐरेलिस्ट कैसे इंजेक्ट कर सकता हूं?

एनपीई का पाठ है: java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.isEmpty()' on a null object reference

उत्तर

8

आप डिबग ("Alt + F8" Windows पर) के दौरान "अभिव्यक्ति का मूल्यांकन" का उपयोग करने की कोशिश की?

इस विंडो में आप लिख सकते हैं:

someList.clear(); 

या

someList = new ArrayList<String>(); 

और यह चाल करना चाहिए।

+0

धन्यवाद, हाँ, जिसने चाल – Lonzak

3

, if(someList.isEmpty()) पर ब्रेकपाइंट बंद करो प्रेस एएलटी + F8 (अभिव्यक्ति का मूल्यांकन), प्रकार someList.clear(), प्रेस Evaluate और सिर्फ डिबगिंग के बारे में आगे बढ़ें। अब यह निश्चित रूप से अगर स्थिति में प्रवेश करेगा।

+0

धन्यवाद किया, हाँ, जिसने चाल की - आपका जवाब सही है। Guillaume थोड़ा तेज था इसलिए मैंने उसका जवाब स्वीकार कर लिया - दोनों स्वीकार नहीं कर सकते ;-) – Lonzak

+0

कोई समस्या नहीं है। मदद करने में सक्षम होने के लिए खुशी हुई। – dambros