次のクラスがあり、マークされた場所で arg==null に条件付きブレークポイントを設定したいとします。これは Eclipse では機能せず、「条件付きブレークポイントにコンパイル エラーがあります。理由: arg を変数に解決できません」というエラーが表示されます。
ここで関連情報をいくつか見つけましたが、条件を「val$arg==null」に変更しても (val$arg はデバッガーの変数ビューに表示される変数名です)、Eclipse で同じエラーが発生します。
public abstract class Test {
public static void main(String[] args) {
Test t1 = foo("123");
Test t2 = foo(null);
t1.bar();
t2.bar();
}
abstract void bar();
static Test foo(final String arg) {
return new Test() {
@Override
void bar() {
// I want to set a breakpoint here with the condition "arg==null"
System.out.println(arg);
}
};
}
}