首先說答案:肯定是調(diào)用的
背景
今天在群里看到一個人問問題魂奥,說自己的反射創(chuàng)建類為什么沒有走構(gòu)造函數(shù),然后群里就有個人說反射不走構(gòu)造函數(shù)柒凉,這個回答肯定是錯的帘皿,可能他的意思是不走他的有參構(gòu)造函數(shù)稠腊,因為問問題人寫的類中只有一個有參構(gòu)造躁染。我們不過分揣摩,先寫個例子證明是走構(gòu)造函數(shù)的架忌。
直接上代碼
我們先寫一個簡單的類User
public class User {
private String name;
private Integer age;
public User() {
System.out.println("無參");
}
public User(String name, Integer age) {
System.out.println("有參");
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
我們這里分別給一個無參吞彤,一個有參的構(gòu)造函數(shù),無參必須要有的叹放,不然發(fā)射的時候出報錯饰恕。
下面測試一下
User user = User.class.getConstructor(String.class,Integer.class).newInstance("張三",12);
User user2 = User.class.newInstance();
運行結(jié)果是
有參
無參
我們可以看到是輸出個構(gòu)造函數(shù)中的輸出字符的,所以反射創(chuàng)建類是會走構(gòu)造函數(shù)的井仰。