我想知道如何在 Eclipse 中使用条件断点。我有一个像这样的代码:
for(A a:aList){}
我已经在线上放了一个断点并且我已经设置了条件
a.getXxx.equals("yyy")
但日食向我显示一个错误:
Conditional breakpoint has compliation error(s).
Reason:
a cannot be resolved
请帮我找出原因。
您必须将断点放置在循环中的第一行,因为在循环的行上还不会知道 a。因此对于
List<Object> myObjects = ...;
for (Object obj : myObjects ) {
obj.doSth();
}
您可以将断点放在“ obj.doSth();
”行
这实际上是因为对于 foreach 循环,编译器除了调用 Iterator.next(); 之外什么都不做。方法作为循环中的第一条语句(您不会注意到编译器会自动执行它)。看看java规范: http ://docs.oracle.com/javase/specs/jls/se5.0/html/statements.html#14.14.2