黑马程序员技术交流社区

标题: 反射获取构造方法并调用 [打印本页]

作者: feitianmao627    时间: 2015-5-14 23:47
标题: 反射获取构造方法并调用
通过Class对象:
                  1.获取类的构造方法,并调用;
                          public Constructor[] getConstructors():获取所有的公有构造方法
                          public Constructor[] getDeclaredConstructors():获取所有构造方法,包括公有、私有、受保护、默认

                          public Constructor<T> getConstructor(Class<?>... parameterTypes):获取单个的公有的构造方法;
                          public Constructor getDeclaredConstructor(Class<?>... parameterTypes):获取单个的构造方法,包括私有的

                          通过Constructor可以调用构造方法,实例化类的对象:
                          Constructor-->newInstance()方法:
                                          方法签名:Object newInstance(Object... initargs):initargs是调用构造方法,传递的参数
                        如果是"私有的构造方法",也可以实例化,但在之前一定要调用:
                                        setAccessible(true);//强制访问私有成员,暴力访问;
                2.获取类的成员属性,并调用;
                       
                3.获取类的成员方法,并调用;


作者: 想要那片海    时间: 2015-5-15 08:25
为什么要使用反射?
作者: feitianmao627    时间: 2015-5-15 11:02
想要那片海 发表于 2015-5-15 08:25
为什么要使用反射?

咱们编程针对的是.Class文件,而反射可以不用改源代码就可以更改.Class中的数据()。
比如说:游戏 前期执行的第一个线路line 1 ;但是升级了想要执行line2;就用反射去修改配置文件,并且覆盖原配置文件,这样省时省力,方便很多。




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