一、利用反射创建对象
创建对象:
1、使用 Class 对象的 newInstance()方法创建该 Class 对象的实例,此时该 Class 对象必须要有无参数的构造方法。
2、使用 Class 对象获取指定的 Constructor 对象,再调用 Constructor 的 newInstance()方法创建对象类的实例,此时可以选择使用某个构造方法。如果这个构造方法被私有化起来,那么必须先申请访问,将可以访问设置为 true;
示例代码(最简单的)
class User {
/*private User(){//将默认的构造方法私有化的话就不可以再创建对象,两种方法都是这样
}*/
public String toString() {
return "User对象创建成功!";
}
}
public class ReflectDemo {
public static void main(String[] args) throws Exception {
// 传统方式创建对象
System.out.println(new User());
// 使用反射的方式
Class<User> c = User.class;
User u = c.newInstance();// (直接newInstance的话必须保证默认的构造方法正常存在,也就是没有被私有化!这是前提条件)
System.out.println(u);
}
}
结果截图如下: