有了Class类,我们不禁想问问自己,他可以有什么作用呢???
先用他来创建类对象
1.概念
1.1创建类的对象
1.1.1 调用Class对象的newInstance()方法
- 类必须有一个无参数构造器
- 类的构造器的访问权限需要足够
1.1.2没有无参的构造器就不能创建对象了吗?
不是的,只要在操作的时候明确的调用类中的构造方法,并将参数传递进去之后,才可以进行实例化操作。
- step1
通过Class类的getDeclaredConstructor(Class … parameterTypes)取得本类的指定形参类型构造器 - step2
向构造器的形参中传递一个对象数组进去,里面包含了构造器所需要的各个参数 - step3
在Constructor类中存在一个方法
2.实例
2.1代码
public void test1() throws Exception{
String className="test.Person";
Class clazz=Class.forName(className);
Object obj=clazz.newInstance();
Person p=(Person)obj;
System.out.println(p);
}
2.2要点
- 必须要有空参构造器
因为newInstance()方法调用的就是构造对象的空参构造器 - 权限要足够
如果空参构造方法是private,那么构造是无法成功的。
因此,创建类时尽量保留空参的构造器