黑马程序员技术交流社区
标题:
关于反射的相关问题
[打印本页]
作者:
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