黑马程序员技术交流社区

标题: 反射 [打印本页]

作者: 清秋    时间: 2011-11-28 16:13
标题: 反射
本帖最后由 清秋 于 2011-11-28 20:18 编辑

反射有什么用呢?

还有数组的反射。

  1.         //数组反射的应用
  2.         private static void printObject(Object obj) {
  3.                 // TODO Auto-generated method stub
  4.                 //obj可能是数组
  5.                 Class clazz = obj.getClass();
  6.                 if (clazz.isArray()) {
  7.                         int len = Array.getLength(obj);
  8.                         for (int i = 0; i < len; i++) {
  9.                                 System.out.print(Array.get(obj, i) + "   ");
  10.                         }
  11.                 }
  12.                 else {
  13.                         System.out.print(obj);
  14.                 }
  15.                 System.out.println();
  16.         }
复制代码
用意何在?

作者: 刘一扬    时间: 2011-11-28 16:18
反射在程序中可以检查某个类中的方法属性等信息,并且能够动态调用。这样可以写出很灵活的程序。

作者: wanghongye    时间: 2011-11-28 17:15
反射其实就是程序能够自检查自身信息。在程序中可以检查某个类中的方法属性等信息,并且能够动态调用。
这样可以写出很灵活的程序。
比如要把一个对象中的数据copy到另外一个对象中,规则是属性名相同就copy,
就可以用反射来做,不需要指定每个属性的名字,只要动态从类中取得信息,
再判断属性名是否相同即可。
作者: 张志东    时间: 2011-11-28 17:19
存在即合理,不理解是因为学习的还不够深入,就像刚开始接触到接口时一样,到后边学习的深入了就知道了
作者: 颜小飞    时间: 2011-11-28 17:37
反射可以根据一个字节码来得到一个未知类的各种组成部分。可以用来程序在运行中动态创建某个未知类的实例对象。像struts框架、hibernate框架、代理都用到了反射




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