黑马程序员技术交流社区

标题: Array的反射体现 [打印本页]

作者: 赵学刚    时间: 2012-12-15 23:14
标题: Array的反射体现
本帖最后由 赵学刚 于 2012-12-16 11:14 编辑

Array工具类用于对数组的反射操作, 问下反射具体体现在哪呢,哪位能结合代码清楚的讲讲,谢谢...........

作者: super_Xiong    时间: 2012-12-16 01:05
这一段我也看的好晕呢~~
作者: 孙辉辉    时间: 2012-12-16 10:41
数组是Java编程语言中的对象。与所有对象一样,它们全部有类。假若您有一个数组,使用标准 getClass 办法,您能获得该数组的类,便象任何其它对象一样。可是, 不通过现有的实例来获得类不同于其它类型的对象。即使您有一个数组类,您也不能端直对它进行太多的操作 -- 反射为标准类提供的构造函数接入不能用于数组,并且数组没任何可接入的字段,只有基本的 java.lang.Object 办法定义用于数组对象。数组的特殊处理使用 java.lang.reflect.Array 类提供的静态办法的集合。该类中的办法使您能够创建新数组,获得数组对象的长度,读和写数组对象的索引值。

下面显示Array工具类用于完成对数组的反射操作

通过反射来扩展一个数组:
  1. private static void printObject(Object obj) {
  2.   Class clazz = obj.getClass();
  3.   if(clazz.isArray()){    //如果是数组
  4.    int len = Array.getLength(obj);    //取得数组的长度
  5.    for(int i=0;i<len;i++){   
  6.     System.out.println(Array.get(obj, i));   //循环遍历输出
  7.    }
  8.   }else{
  9.    System.out.println(obj);
  10.   }
  11.   
  12. }
复制代码

作者: 赵学刚    时间: 2012-12-16 11:14
嗯  谢谢   




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2