Java Object matrix=Array-Oracle上的数组反射教程有什么问题';s网站示例

Java Object matrix=Array-Oracle上的数组反射教程有什么问题';s网站示例,java,reflection,multidimensional-array,Java,Reflection,Multidimensional Array,我试图关注Oracle的网站,但它似乎不起作用。由于这是Oracle自己的文档,我只是想知道我是否做错了什么: Object matrix = Array.newInstance(int.class, 2); Object row0 = Array.newInstance(int.class, 2); Object row1 = Array.newInstance(int.class, 2); Array.setInt(row0, 0, 1); Array.setInt(row0, 1, 2)

我试图关注Oracle的网站,但它似乎不起作用。由于这是Oracle自己的文档,我只是想知道我是否做错了什么:

Object matrix = Array.newInstance(int.class, 2);
Object row0 = Array.newInstance(int.class, 2);
Object row1 = Array.newInstance(int.class, 2);

Array.setInt(row0, 0, 1);
Array.setInt(row0, 1, 2);
Array.setInt(row1, 0, 3);
Array.setInt(row1, 1, 4);

Array.set(matrix, 0, row0); // <- This throws IllegalArgumentException
Array.set(matrix, 1, row1);
objectmatrix=Array.newInstance(int.class,2);
对象row0=Array.newInstance(int.class,2);
对象row1=Array.newInstance(int.class,2);
setInt(行0,0,1);
数组.setInt(第0行,第1行,第2行);
数组.setInt(第1行,第0行,第3行);
数组.setInt(第1行,第1行,第4行);

数组.set(矩阵,0,行0);// 我猜oracle站点的代码是错误的

应该是

   Object matrix = Array.newInstance(int.class, 2, 2);
代码

   Object matrix = Array.newInstance(int.class, 2);
创建大小为2的数组,但数组对象必须是int.class。

完整代码应为:

import java.lang.reflect.Array;

import static java.lang.System.out;

public class CreateMatrix {
    public static void main(String... args) {
        Object matrix = Array.newInstance(int.class, 2, 2);//var arg was wrong in docs?
        Object row0 = Array.newInstance(int.class, 2);
        Object row1 = Array.newInstance(int.class, 2);

        Array.setInt(row0, 0, 1);
        Array.setInt(row0, 1, 2);
        Array.setInt(row1, 0, 3);
        Array.setInt(row1, 1, 4);

        Array.set(matrix, 0, row0);
        Array.set(matrix, 1, row1);

        for (int i = 0; i < 2; i++)
            for (int j = 0; j < 2; j++)
                out.format("matrix[%d][%d] = %d%n", i, j, ((int[][]) matrix)[i][j]);
    }
}
import java.lang.reflect.Array;
导入静态java.lang.System.out;
公共类CreateMatrix{
公共静态void main(字符串…参数){
Object matrix=Array.newInstance(int.class,2,2);//文档中的var arg错误?
对象row0=Array.newInstance(int.class,2);
对象row1=Array.newInstance(int.class,2);
setInt(行0,0,1);
数组.setInt(第0行,第1行,第2行);
数组.setInt(第1行,第0行,第3行);
数组.setInt(第1行,第1行,第4行);
数组.set(矩阵,0,行0);
数组.set(矩阵,1,行1);
对于(int i=0;i<2;i++)
对于(int j=0;j<2;j++)
out.格式(“矩阵[%d][%d]=%d%n”,i,j,((int[])矩阵)[i][j]);
}
}

1个参数
2
是否意味着它是一个具有2个索引的一维数组?@Sotirios Delimanolis:是的,它变成了一个大小为2的数组,具有整数存储