2013-03-20 105 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

相關問題