2012-03-02 104 views
0

我使用Ant和JDK-1.5_10編譯我的源代碼,並創建一個jar文件。而jar創建時沒有任何編譯錯誤。 但我在運行時遇到以下代碼 - 類拋出異常 - > java.lang.Long不能轉換爲[Ljava.lang.Object (注意 - 我沒有包含完整的代碼,只有其中我有疑問的那一個)運行-類轉換異常

void someFunction(List<Object[]> result){ 
    Object[] resultObject = new Object[1]; 
    for (Object resultSet : result) { 
     resultObject[0] = resultSet; 
    }//end of for 
}//end of function 

我得到在第三線異常((對象的resultSet:結果))。 但是,當我更換包含上述正在使用的Eclipse編譯的則執行沒有錯誤的函數的類。 Eclipse也是使用JDK-1.5_10

我無法找出其原因。當我使用ant腳本編譯源代碼時,是否有任何問題。需要幫助來找出這種情況背後的原因。

謝謝!

+0

不是'result'對象數組,每個元素?所以嘗試'for(Object [] resultSet:result)' – 2012-03-02 05:47:53

+0

嗨,獵人! 雅是。但是我想知道爲什麼它不會導致運行時異常,當我使用類,即在eclipse中編譯,爲什麼它會在使用由ant腳本編譯的類時出現? – 2012-03-02 05:54:54

+0

我已經編輯我的問題現在有例外也 – 2012-03-02 07:49:12

回答

0

當你在命令行中運行您的螞蟻產生的罐子,要傳遞到「someFunction」元素的列表,而這種元素之一是一個長期的,和你的計劃是希望它是一個對象[ ]。如果您嘗試使用相同的輸入,則兩種情況(命令行和eclipse)都應該這樣做。

不過,我覺得你是不是正確的迭代,列表中的每個對象是一個數組(您正在使用的對象):

void someFunction(List<Object[]> result){ 
    Object[] resultObject; 
    for (Object[] resultSet : result) { 
     System.out.println(resultSet); // Is an Object[] 
     resultObject = resultSet; 
    }//end of for 
}//end of function 
+0

如果你仍然有完全相同的代碼和相同的輸入(很奇怪的情況下)的問題,發表您的完整代碼,請。 – greuze 2012-03-02 09:27:54

+0

好吧,我得到了你給的解釋,但我想搞清楚當我運行的原因使用eclipse的類的eclipse版本沒有錯誤,但是當我運行螞蟻生成的類文件時有這個異常。 – 2012-03-02 09:39:59