使用反射操作Array类型

使用反射操作Array类型:

a):

Class<?> classType = Class.forName("java.lang.String");

Object array = Array.newInstance(classType, 10);

Array.set(array, 5, "hello");

String str = (String)Array.get(array, 5);

System.out.println(str);



 b):

public class ArrayTester2
{
public static void main(String[] args)
{
int[] dims = new int[] { 5, 10, 15 };

Object array = Array.newInstance(Integer.TYPE, dims);//dims为创建的新数组的维度(这里是一个三维数组5,10,15)

System.out.println(array instanceof int[][][]);//检查一下是不是三维数组

Object arrayObj = Array.get(array, 3);//arrayObj是一个二维数组(三维数组的第3个)

arrayObj = Array.get(arrayObj, 5);//arrayObj是一个一维数组(二维数组的第5个)

Array.setInt(arrayObj, 10, 37);//a为一维数组的第10位赋值为37.

int[][][] arrayCast = (int[][][]) array;

System.out.println(arrayCast[3][5][10]);

System.out.println(Integer.TYPE);
System.out.println(Integer.class);
}
}

另:Integer.TYPE 返回的是 int,而Integer .class返回的是 Integer 类所对应的Class对象。 

 

本文为<北京圣思园Java培训教学视频Java.SE 反射机制大总结>视频笔记

posted @ 2012-01-13 21:10  天如er  阅读(374)  评论(0编辑  收藏  举报