3

我想知道如何在 Eclipse 中使用条件断点。我有一个像这样的代码:

for(A a:aList){}

我已经在线上放了一个断点并且我已经设置了条件

a.getXxx.equals("yyy")

但日食向我显示一个错误:

Conditional breakpoint has compliation error(s).
Reason:
a cannot be resolved

请帮我找出原因。

4

1 回答 1

4

您必须将断点放置在循环中的第一行,因为在循环的行上还不会知道 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

于 2012-05-29T08:11:37.637 回答