2013-03-20 108 views
-2

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

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

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

+8

首先放置'for-each'循环代码片段,否则即使我们不会有任何想法。 – SudoRahul 2013-03-20 07:35:20

+0

如果你将添加一些代码,也许我们会有一个想法... – BobTheBuilder 2013-03-20 07:36:38

+0

如果在示例表达式中for(int a:b){'b''不可枚举 – 2013-03-20 07:36:56

回答

2
  • 集合上迭代是空
  • 程序流程绕开for-each循环(例外,条件等)
  • A有一个空的for-each循环体语句错位的;结果
1

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

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

在进入循环之前,但在最后一次检查到达之后,可能会失败。

尝试捕获异常并显示其getCause()以查看实际发生了什么问题。

+0

当我打印邮件时,异常说“[Ljava.lang.Object;不能转换为com.hris.eis.eisity.survey.SurveyReport” – 2013-03-20 08:35:40

+0

在哪里抛出异常?通过堆栈跟踪来查找来自您认出的代码的最深的呼叫,并查看该行号码发生了什么。 – 2013-03-20 08:56:57

相关问题