黑马程序员技术交流社区

标题: 利用反射创建实例对象 [打印本页]

作者: 蒋先    时间: 2011-10-18 20:45
标题: 利用反射创建实例对象
Class里的newInstance()和构造方法Constructor里的newInstance都是创建实例对象,有什么关系?
作者: zhangxinxin    时间: 2011-10-18 21:18
Class里的newInstance()创建实例对象时,只能使用无参数的构造方法创建实例对象;
Constructor里的newInstance()创建实例对象时,可以调用任意参数的构造方法(也包括无参数的构造方法)创建实例对象
作者: 叶涛    时间: 2011-10-18 21:41
通过反射创建新的类示例,有两种方式:
Class.newInstance()
Constructor.newInstance()


以下对两种调用方式给以比较说明:
Class.newInstance() 只能够调用无参的构造函数,即默认的构造函数;
Constructor.newInstance() 可以根据传入的参数,调用任意构造构造函数。

Class.newInstance() 抛出所有由被调用构造函数抛出的异常。

Class.newInstance() 要求被调用的构造函数是可见的,也即必须是public类型的;
Constructor.newInstance() 在特定的情况下,可以调用私有的构造函数。

作者: 刘江华    时间: 2011-10-18 23:13
class里面newInstance()调用是你目标类的无参构造函数。而Constructor里面的newInstance()可以根据你目标类的构造方法的重载方法来自由选择;就是说你可以调用有参的也可以调用无参的。不过要麻烦一点。




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