java.lang.Array 类提供了动态创建和访问数组元素的各种静态方法。例程
ArrayTest 类的main()方法创建了一个长度为10 的字符串数组,接着把索引位置为5 的元素设为“hello”,然后再读取索引位置为5 的元素的值
一、作为一维数组示例代码:
这里第21行,也可以这样写:Array.setInt(array_2,10,37);
java 代码
- 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
- }
- }
二、作为多维数组对象示例代码
java 代码
- 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);