黑马程序员技术交流社区

标题: 很郁闷的问题:怎么用反射操作一个类里的所有方法和属性 [打印本页]

作者: 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