构造器最大的作用:创建对象.
为什么使用反射创建对象而不直接来new呢?
在框架中.提供给我们的都是字符串
使用反射创建对象__步骤:
- 找到构造器所在类的字节码对象.
- 获取构造器对象.
- 使用反射,创建对象.
constructor<T>类:表示类中构造器的类型,constructor的实例就是某一个类中的某一个构造器
常用方法:
public T newInstance(Object parameters);
如果调用带参数的构造器,只能使用该方式.
参数:parameters:表示调用构造器的实际参数
返回:返回创建的实例,T表示Class所表示类的类型
如果一个类中的构造器是外界可以直接访问,并且没有参数,那么可以直接使用Class类中的newInstance方法创建对象.
public Object newInstance(); 相当于new类名();
构造器
通过反射调用构造器
注意到当调用到私有构造器方法的时候,使用的是getDeclaredConstructor();
并且之前要用setAccessible方法设置私有构造器为可以访问的(这里也反映了了单例设计模式不完全是安全的.).
网友评论