我需要在运行时根据输入数组tableParameter的值创建一个数组。
我的代码示例如下:
int[] tableParameter = new int[dimension + 1];
tableParameter[0] = N;
for(int i = 1; i < tableParameter.length; i++)
tableParameter[i] = i;
Object myArray = Array.newInstance(int.class, tableParameter);
//set the index 1 of the array with the value 100
Array.setInt(myArray, 1, 100);
异常发生在上面代码的最后一行:
Exception in thread "main" java.lang.IllegalArgumentException: Argument is not an array
但是当我使用
System.out.println(myArray.getClass().getCanonicalName());
为了验证 myArray 的类,它打印出 int[][][][],这意味着 myArray 绝对是一个数组类型。
那么为什么JVM会抛出myArray不是数组的异常呢?