黑马程序员技术交流社区

标题: 构造方法的反射应用 [打印本页]

作者: jlq    时间: 2015-11-19 23:55
标题: 构造方法的反射应用
1、Constructor类代表某个类中的一个构造方法
2、得到某个类中所有的构造方法
例子:Constructor [ ]  constructors=Class.forName("java.lang.String").getConstructors( ).
****构造方法是无序的
3、得到某一个构造方法
例子:Constructor constructor=Class.forName("java.lang.String").getConstructor(StringBuffer.class ).
****()里放的是构造方法的参数的字节码
注意:一个类有好多的构造方法,唯一不同的是构造方法的参数不同。
String( ):String( StringBuffer sb).....
获得方法时,要用到类型


4、创建实例对象:
1)通常方式:String str=new String(new StringBuffer("abc"));
2)反射方式:String str2=(String)constructor.newInstance(new StringBuffer("abc"));
******调用获得的方法时要用到上面相同类型的实例对象。
5、Class.newInstance( )方法(无参数的构造方法)
例子:String obj=(String)Calss.forName("java.lang.String").newInstance( ).
该方法内部先得到默认的构造方法,然后用该构造方法创建实例对象。
该方法内部的具体代码是怎么样写的?
用到了缓存机制来保存默认的构造方法的实例对象。





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