使用構造器創建對象
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生涯 的文章