使用构造器创建对象
Class claz = User.class;
//获取无参构造
Constructor constructor = claz.getConstructor();
//创建对象
User newInstance = (User)constructor.newInstance();//打印出无参
//获取String name构造
Constructor constructor2 = claz.getConstructor(String.class);
//创建对象
User newInstance2 = (User)constructor2.newInstance("小黑");//打印出name=小黑
//获取String name,int age构造 注意 private需要用getDeclaredConstructor
Constructor constructor3 = claz.getDeclaredConstructor(String.class,int.class);
//创建对象(注意private构造不能直接使用newInstance)会报错Class com.io.aa can not access a member of class com.io.User with modifiers "private"
constructor3.setAccessible(true);//这句设置表示直接可以访问private修饰的构造器
User newInstance3 = (User)constructor3.newInstance("小黑",2);//打印出name=小黑age=2
//注意如果某个类中构造器是public修饰且无参可以用Class对象的newInstance()方法直接创建对象
User newInstance4 = (User)claz.newInstance();
User类
class User{
public User(){
System.out.println("无参");
}
public User(String name){
System.out.println("name="+name);
}
private User(String name,int age){
System.out.println("name="+name+"age="+age);
}
}
閱讀更多 IT生涯 的文章