黑马程序员技术交流社区
标题:
很郁闷的问题:怎么用反射操作一个类里的所有方法和属性
[打印本页]
作者:
zhanghua
时间:
2011-11-16 10:24
标题:
很郁闷的问题:怎么用反射操作一个类里的所有方法和属性
本帖最后由 zhanghua 于 2011-11-21 13:58 编辑
一个自己写的类,怎么用反射去操作它呢?改变这个类的属性值,和调用这个类的方法
作者:
宋文轩
时间:
2011-11-16 10:36
本帖最后由 宋文轩 于 2011-11-16 10:58 编辑
首先获取你写的类的字节码文件 Class class1=类名.class; 获取方法 Method method=class1.getMethod("方法名",参数列表.class);
Constructor con=class1.getConstructor(参数列表.class);
Object obj=con.newInstance(实参);
method.invoke(obj,实参);
获取属性 Field field=class1.getField("字段名");
field.set();
多看点视频吧 都有讲
作者:
高庆亮
时间:
2011-11-16 10:42
本帖最后由 高庆亮 于 2011-11-16 10:45 编辑
是和其他类一样的,首先获得这个类的字节码,获得字节码有三种方法:
a.直接用类名.class
b.对象名.getclass
c.Class.forName("该类的路径")
拿到字节码后就可以检查到这个类的属性和方法了。检查后就可以对其进行操作。
Constructor[] (获得构造方法) Method[](获得该类的方法) Field[](获得属性)
我只能先提供给你这些信息了,刚接触反射时多看看视频,在多动手,如果感觉张老师的刚开始看不懂,就先看下其他比较基础的视频,然后回头再看张老师的视频,在多动手练练就OK了,我就是这么过来的。反射很有意思的哦。
(对了老师别忘了给我加分呀,我准备去黑马第五期,现在一分还没有呢{:soso_e149:} )
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2