java.lang.Array 类提供了动态创建和访问数组元素的各种静态方法。如例程10-4
所示的ArrayTester1 类的main()方法创建了一个长度为10 的字符串数组,接着把索引
位置为5 的元素设为“hello”,然后再读取索引位置为5 的元素的值。
例程10-4 ArrayTester1.java
如例程10-5 所示的ArrayTester2 类的main()方法创建了一个5×10×15 的整型数
组,并把索引位置为[3][5][10]的元素的值为设37。
输出:
class [I
37???
所示的ArrayTester1 类的main()方法创建了一个长度为10 的字符串数组,接着把索引
位置为5 的元素设为“hello”,然后再读取索引位置为5 的元素的值。
例程10-4 ArrayTester1.java
import java.lang.reflect.*;
public class ArrayTester1 {
public static void main(String args[]) throws Exception {
Class classType = Class.forName("java.lang.String");
// 创建一个长度为10 的字符串数组
Object array = Array.newInstance(classType, 10);
// 把索引位置为5 的元素设为"hello"
Array.set(array, 5, "hello");
// 读取索引位置为5 的元素的值
String s = (String) Array.get(array, 5);
System.out.println(s); //输出hello
}
}
如例程10-5 所示的ArrayTester2 类的main()方法创建了一个5×10×15 的整型数
组,并把索引位置为[3][5][10]的元素的值为设37。
import java.lang.reflect.*;
public class ArrayTester2 {
public static void main(String args[]) {
int dims[] = new int[] { 5, 10, 15 };
Object array = Array.newInstance(Integer.TYPE, dims);
// 使arrayObj 引用array[3]
Object arrayObj = Array.get(array, 3);
Class cls = arrayObj.getClass().getComponentType();
System.out.println(cls);
// 使arrayObj 引用array[3][5]
arrayObj = Array.get(arrayObj, 5);
// 把元素array[3][5][10]设为37
Array.setInt(arrayObj, 10, 37);
int arrayCast[][][] = (int[][][]) array;
System.out.println(arrayCast[3][5][10]);
}
}
输出:
class [I
37???