java 反射机制实例解释(2)
java.lang.Array 类提供了动态创建和访问数组元素的各种静态方法。如例程10-4
所示的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}}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]设为37Array.setInt(arrayObj, 10, 37);int arrayCast[][][] = (int[][][]) array;System.out.println(arrayCast[3][5][10]);}}