黑马程序员技术交流社区

标题: 反射获取构造函数总结 [打印本页]

作者: 拾起落叶    时间: 2015-7-15 16:39
标题: 反射获取构造函数总结
1、概述
        如果指定的类中没有空参数的构造函数,或者要创建的类对象需要通过指定的构造函数进行初始化。这时怎么办呢?这时就不能使用Class类中的newInstance方法了。既然要通过指定的构造函数进行对象的初始化。就必须先获取这个构造函数——Constructor。Constructor代表某个类的构造方法。
2、获取构造方法:
       1)得到这个类的所有构造方法:如得到上面示例中Person类的所有构造方法
             Constructor[] cons = Class.forName(“cn.itheima.Person”).getConstructors();
       2)获取某一个构造方法:
             Constructor con=Person.class.getConstructor(String.class,int.class);
3、创建实例对象:
        1)通常方式:Person p = new Person(“lisi”,30);
        2)反射方式:Person p=(Person)con.newInstance(“lisi”,30);
注:
        1、创建实例时newInstance方法中的参数列表必须与获取Constructor的方法getConstructor方法中的参数列表一致。
        2、newInstance():构造出一个实例对象,每调用一次就构造一个对象。
        3、利用Constructor类来创建类实例的好处是可以指定构造函数,而Class类只能利用无参构造函数创建类实例对象。






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