2016-03-03 86 views
1

操作系統Windows 7 64位Java Array對象

我正在使用第三方軟件使用jython編寫腳本。我可以使用「newInstance」創建一個組件類型爲「int」的數組。我也可以使用「get」在特定索引處檢索元素。但是,當我嘗試使用「setInt」初始化數組值時,我得到:

IllegalArgumentException:參數不是數組。

爲什麼它在使用get檢索時識別數組,而不是在使用setInt啓動時識別數組?

from java.lang.reflect import Array 
    arrayAsset = ['ExtRS', 'TPI', 'RRN', 'RRS', 'CCLN', 'CCLS', 'TPA', 'BAGN', 'BAGS', 'CP'] 
    arrayCount = Array.newInstance(int, len(arrayAsset)) 
    Array.get(arrayCount, 3) 
    Array.setInt(arrayCount, 3, 0) 

回答

-2

我使用ArrayList而不是Array,並不是真正的解決方案,但它工作。

2

可能發生的情況是Integer數組已被創建。

在Java

Object arrayCount = Array.newInstance(Integer.class, arrayAsset.length); 
Array.setInt(arrayCount, 3, 0); 

拋出java.lang.IllegalArgumentException異常:參數不是一個數組

Object arrayCount = Array.newInstance(Integer.class, arrayAsset.length); 
Array.set(arrayCount, 3, 0); 

將工作

Object arrayCount = Array.newInstance(int.class, arrayAsset.length); 
Array.setInt(arrayCount, 3, 0); 

也工作正常

+0

我結束了導入ArrayList並使用'set'和'add'指令。我應該更新我的帖子,感謝您的意見,BevynQ – user2795886

+0

有趣的自動裝箱案例出錯了,呃? –