アプリケーションのデバッグ中に変数を変更する必要があります。これまでは、直接設定できるのは単なる基本的な変数でした。ここで、isEmpty()
がtrueを返すように配列をクリアする必要があります。
_ArrayList<String> someList = new ArrayList<String>;
someList.add("1");
...
if(someList.isEmpty()){ //break point
//need to enter here
}
_
Intellijデバッガーで私は見る:
_someList={ArrayList@4271} size=1
_
デバッガーの「setValue」メソッドを使用して試してみました:new ArrayList<String>()
またはsomeList = new ArrayList<String>()
その結果
_someList={ArrayList@4339} size=0
_
しかし、続行すると、isEmpty()が呼び出されたときにNullPointerExceptionが発生します。だから私の質問:NPEを取得せずに空のArrayListを注入するにはどうすればよいですか?
NPeのテキストは次のとおりです:Java.lang.NullPointerException: Attempt to invoke interface method 'boolean Java.util.List.isEmpty()' on a null object reference
デバッグ中に「式の評価」を使用しようとしましたか( "Alt + F8"Windowsの場合)?
このウィンドウでは、次のように記述できます。
someList.clear();
または
someList = new ArrayList<String>();
そしてそれはトリックをするべきです。
if(someList.isEmpty())
でブレークポイントを停止し、 ALT + F8 (式を評価)、someList.clear()
と入力し、Evaluate
を押して、デバッグを続行します。これで、確実にif条件に入ります。
私はこの問題を抱えていますが、私はKotlinを使用しています。これは(someList as ArrayList<*>).clear()
で実行できます