黑马程序员技术交流社区

标题: 反射有几种方法创建一个类的实例呢? [打印本页]

作者: 卢其龙    时间: 2012-1-8 18:22
标题: 反射有几种方法创建一个类的实例呢?
一般是都获得类的构造函数,在实例化此类
Constructor con = A.class.getConstructor();
A a =(a)con.newInstance();

还有其他的思路吗?
作者: 黄喆    时间: 2012-1-8 19:32
1、通过Class对象的newInstance()方法,这种方法的局限是只能取调用默认的构造函数
2、通过取得Class对象的getConstructor方法取得Construtor对象,然后再通过调用Constructor类的newInstance的方法
3、通过Array.newInstance方法来创建对象,但这种只适用于数组,数组也是一种对象


作者: 黄湘怡    时间: 2012-1-8 19:50
获取Class对象的三种方式:
                        a.通过类名获取 Class.forName(String)
                        b.直接获取 Xxxx.class
                        c.通过对象获取 对象.getClass()
作者: 374122761    时间: 2012-1-8 20:18
有4种
方法一:new
方法二:使用工厂模式,引入工厂类
方法三:使用反射:Class.forName
方法四:对象克隆


作者: zl918    时间: 2012-1-8 21:21

1 new语句(最常见)
2 反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()方法
3 调用对象的clone()方法
4 反序列化 调用java.io.ObjectInputStream对象的readObject()方法
作者: 王_涛    时间: 2012-1-13 19:59
一、反射来创建一个类的实例程序中不用new创建实例,
二、根据一编译期就不会确定对象的类型, 这样就实现了动态的绑定,
三、根据二增强了程序的扩展,如Class.forName("driver"),driver是通过配置文件配置的,当你要连接不同的数据库时,也许你就只要改一下配置文件就可以了,不用改动程序。对扩展开发,对修改关闭,著名的OPC原则。   

特别提醒,反射的效率很低,不到迫不得已不要用反射




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