JAVA中通过反射机制用构造方法创建对象
public class ConstructorTest01 {
public static void main(String[] args) throws Exception{
Class c = Class.forName("reflection.constructor.UserService");
//调用无参构造方法创建对象
Object o1 = c.newInstance();
//通过形参列表确认要创建的构造器对象
Constructor con = c.getDeclaredConstructor(String.class, int.class, boolean.class);
Object newObj = con.newInstance("jack", 20, true);
System.out.println(newObj);
//获取无参构造方法
Constructor con2 = c.getDeclaredConstructor();
Object newObj2 = con2.newInstance();
System.out.println(newObj2);
}
}
测试类:
public class UserService {
String name;
int age;
boolean sex;
public UserService() {
System.out.println("调用了无参构造方法");
}
public UserService(String name, int age) {
this.name = name;
this.age = age;
}
public UserService(String name, int age, boolean sex) {
this.name = name;
this.age = age;
this.sex = sex;
System.out.println("调用了有参数构造方法");
}
@Override
public String toString() {
return "UserService{" +
"name='" + name + '\'' +
", age=" + age +
", sex=" + sex +
'}';
}
}