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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pireteMrZ 中级黑马   /  2013-11-9 22:53  /  1202 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java两种反射的相同与不同之处?麻烦能详细解释...

2 个回复

倒序浏览
不好意思啊楼主。
没听明白你的意思,你能否贴出代码看看?
首先反射就是用Class中的方法得到你所要操作的类的.class字节码,然后就可以通过这个字节码得到这个类的Field Method Construtor,得到这些,就可以创建对象,得到方法,属性,进一步就可以对对象进行你想要的修改了
下面说下得到类字节码的三种方式
1.类名.class  比如 String.class   这样就得到了String这个类的字节码。这种方式很显然得先知道你所要操作的类名
2.对象.getClass()  比如"abc".getClass()   这样也能得到String类的字节码。这种方式的前提是得有一个已经创建的对象。
3.Class.forName(类名)  这种方式是将类的字节码加载进内存,可能这时候这个类的字节码已经不在内存中了,那么就就加载进内存,如果内存中已经存在了,就直接拿出来用。这种方式跟前两钟稍稍不同

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

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


最后,建议你先看张孝祥老师的高新技术视频。我都是在那上边学的
  

评分

参与人数 1技术分 +1 收起 理由
狼王 + 1

查看全部评分

回复 使用道具 举报
尽量加之代码,别人更容易懂一些
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马