数组是Java编程语言中的对象。与所有对象一样,它们全部有类。假若您有一个数组,使用标准 getClass 办法,您能获得该数组的类,便象任何其它对象一样。可是, 不通过现有的实例来获得类不同于其它类型的对象。即使您有一个数组类,您也不能端直对它进行太多的操作 -- 反射为标准类提供的构造函数接入不能用于数组,并且数组没任何可接入的字段,只有基本的 java.lang.Object 办法定义用于数组对象。数组的特殊处理使用 java.lang.reflect.Array 类提供的静态办法的集合。该类中的办法使您能够创建新数组,获得数组对象的长度,读和写数组对象的索引值。
下面显示Array工具类用于完成对数组的反射操作
通过反射来扩展一个数组:- private static void printObject(Object obj) {
- Class clazz = obj.getClass();
- if(clazz.isArray()){ //如果是数组
- int len = Array.getLength(obj); //取得数组的长度
- for(int i=0;i<len;i++){
- System.out.println(Array.get(obj, i)); //循环遍历输出
- }
- }else{
- System.out.println(obj);
- }
-
- }
复制代码 |