-1

有人能告诉我java中的foreach循环没有执行的可能原因是什么吗?因为每次我调试程序时,它都不会进入我的 foreach 中。

    for(SurveyReport surveyReport : surveyReportList)
    {
       System.out.println(surveyReport.getRiskRank().toString());
    }

这是我的 foreach 循环。简单但非常奇怪,因为我总是收到 InvocationTargetException。

4

2 回答 2

2
  • 被迭代的集合是空的
  • 程序流程绕过了 for-each 循环(异常、条件等)
  • 错误;放置会导致空的 for-each 循环体语句
于 2013-03-20T07:41:25.400 回答
1

“InvocationTargetException 是一个经过检查的异常,它包装了被调用的方法或构造函数抛出的异常。” java.lang.reflect.InvocationTargetException

这表明代码可能正在进入循环,但如果是这样,则第一个 println 参数表达式涉及反射,并且通过反射调用的方法或构造函数会引发异常。

它可能在进入循环之前失败,但在你检查它到达的最后一个地方之后。

尝试捕获异常并显示其 getCause() 以查看真正出了什么问题。

于 2013-03-20T08:14:45.567 回答