Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在eclipse中为foreach循环使用条件断点?_Java_Eclipse_Debugging - Fatal编程技术网

Java 如何在eclipse中为foreach循环使用条件断点?

Java 如何在eclipse中为foreach循环使用条件断点?,java,eclipse,debugging,Java,Eclipse,Debugging,我想知道如何在eclipse中使用条件断点。我有这样一个代码: for(A a:aList){} 我已经把breakponit放在线上了,我已经设定了条件 a.getXxx.equals("yyy") 但是eclipse向我显示了一个错误: Conditional breakpoint has compliation error(s). Reason: a cannot be resolved 请帮我找到原因。您必须将断点放在循环中的第一行,因为循环行上还不知道断点。所以 List<

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

for(A a:aList){}
我已经把breakponit放在线上了,我已经设定了条件

a.getXxx.equals("yyy")
但是eclipse向我显示了一个错误:

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

请帮我找到原因。

您必须将断点放在循环中的第一行,因为循环行上还不知道断点。所以

List<Object> myObjects = ...;
for (Object obj : myObjects ) {
    obj.doSth();
}
列出myObjects=。。。;
对于(对象对象:MyObject){
obj.doSth();
}
您可以将断点放在“
obj.doSth();
”行上

这实际上是因为对于foreach循环,编译器只调用迭代器。next();方法作为循环中的第一条语句(在编译器自动执行时,您不会注意到这一点)。 请看一下java规范:

您可能必须将断点放在循环内,而不是放在foreach循环上。您可以粘贴整个代码吗?它可以工作。我只是将断点设置在“for(xxx)”行上。谢谢。