7

我需要在調試應用程序時更改變量。直到現在,它只是可以直接設置的基本變量。現在我需要清除一個數組,以便isEmpty()返回true;如何在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 isEmpty( ) 叫做。所以我的問題:我怎樣才能注入一個空的ArrayList沒有得到一個NPE?

的NPE的文字是:java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.List.isEmpty()' on a null object reference

回答

8

你嘗試調試(在Windows 「Alt鍵 + F8」)過程中使用的 「評估表達式」?

在這個窗口中,你可以這樣寫:

someList.clear(); 

someList = new ArrayList<String>(); 

它應該做的伎倆。

+0

謝謝,是的,沒有把戲 – Lonzak

3

停止斷點if(someList.isEmpty()),按ALT + F8(評估表達式),類型someList.clear(),按Evaluate,只是進行調試。現在它將明確地輸入if條件。

+0

謝謝,是的,這是做竅門 - 你的回答是正確的。紀堯姆有點快,所以我接受了他的答案 - 不能同時接受;-) – Lonzak

+0

沒問題。很高興能夠提供幫助。 – dambros

相關問題