黑马程序员技术交流社区

标题: 关于反射的相关问题 [打印本页]

作者: pireteMrZ    时间: 2013-11-9 22:53
标题: 关于反射的相关问题
java两种反射的相同与不同之处?麻烦能详细解释...
作者: ysunday    时间: 2013-11-10 22:08
不好意思啊楼主。
没听明白你的意思,你能否贴出代码看看?
首先反射就是用Class中的方法得到你所要操作的类的.class字节码,然后就可以通过这个字节码得到这个类的Field Method Construtor,得到这些,就可以创建对象,得到方法,属性,进一步就可以对对象进行你想要的修改了
下面说下得到类字节码的三种方式
1.类名.class  比如 String.class   这样就得到了String这个类的字节码。这种方式很显然得先知道你所要操作的类名
2.对象.getClass()  比如"abc".getClass()   这样也能得到String类的字节码。这种方式的前提是得有一个已经创建的对象。
3.Class.forName(类名)  这种方式是将类的字节码加载进内存,可能这时候这个类的字节码已经不在内存中了,那么就就加载进内存,如果内存中已经存在了,就直接拿出来用。这种方式跟前两钟稍稍不同

得到字节码后就是取得这个类的各种方法和属性了
用getConstructor()得到构造函数
用getField()得到类的属性
用getMethod()得到类的方法

之后就是各种操作了 详细的情参照api


最后,建议你先看张孝祥老师的高新技术视频。我都是在那上边学的
  
作者: 狼王    时间: 2013-11-11 10:39
尽量加之代码,别人更容易懂一些




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