操作系统Windows 7 64位
我正在使用第三方软件使用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)
最佳答案
可能发生的情况是已经创建了一个整数数组。
在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);
也可以