【转】http://yahaitt.iteye.com/blog/144779
java.lang.Array 类提供了动态创建和访问数组元素的各种静态方法。例程
ArrayTest 类的main()方法创建了一个长度为10 的字符串数组,接着把索引位置为5 的元素设为“hello”,然后再读取索引位置为5 的元素的值
一、作为一维数组示例代码:
这里第21行,也可以这样写:Array.setInt(array_2,10,37);
package com.test.reflect;
import java.lang.reflect.Array;
public class ArrayTest {
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("java.lang.String");
//创建一个长度为10的字符串数组,在Java中数组也可以作为Object对象
Object array = Array.newInstance(clazz, 10);
//把字符串数组对象的索引位置为5的元素设置为"hello"
Array.set(array, 5, "hello");
//获得字符串数组对象的索引位置为5的元素的值
String str = (String)Array.get(array, 5);
System.out.println(str);//hello
}
}
二、作为多维数组对象示例代码
package com.test.reflect;
import java.lang.reflect.Array;
public class ArrayTest2 {
public static void main(String[] args) {
//dims的长度就表示了数组的维数,如这里的是三维
int[] dims = new int[] {5,10,15};
//array其实就是个三维数组对象了
Object array = Array.newInstance(Integer.TYPE, dims);
//找到第一维下标为3的元素,此元素是个二维数组对象
Object array_1 = Array.get(array, 3);
//找到第二维下标为5的元素,此元素是个一维数组对象
Object array_2 = Array.get(array_1, 5);
//找到第三维下标为10的元素,此元素是个int类型的数据,并给这个数据赋值为37
Array.set(array_2, 10, 37);
int[][][] value = (int[][][])array;
System.out.println(value[3][5][10]);//37
}
}
上面的代码第21行也可以这样写:Array.setInt(array_2,10,37);