A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵学刚 中级黑马   /  2012-12-15 23:14  /  1470 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 赵学刚 于 2012-12-16 11:14 编辑

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

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

3 个回复

倒序浏览
这一段我也看的好晕呢~~
回复 使用道具 举报
数组是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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
嗯  谢谢   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马