2.2.4 操作数组

使用反射API对数组进行操作的方式不同于一般的Java对象,是通过专门的java.lang.reflect.Array这个实用工具类来实现的。Array类中提供的方法包括创建数组和操作数组中的元素。如代码清单2-20所示,newInstance方法用来创建新的数组,第一个参数是数组中元素的类型,后面的参数是数组的维度信息。比如names是一个长度为10的一维String数组。matrix1是一个3×3×3的三维数组。由于matrix2的元素类型是int[],虽然在创建时只声明了两个维度,但是它实际上也是一个三维数组。

代码清单2-20 使用反射API操作数组


public void useArray(){

String[]names=(String[])Array.newInstance(String.class,10);

names[0]="Hello";

Array.set(names,1,"World");

String str=(String)Array.get(names,0);

int[][][]matrix1=(int[][][])Array.newInstance(int.class,3,3,3);

matrix1[0][0][0]=1;

int[][][]matrix2=(int[][][])Array.newInstance(int[].class,3,4);

matrix2[0][0]=new int[10];

matrix2[0][1]=new int[3];

matrix2[0][0][1]=1;

}