方法介绍
public class Users {
private String username;
private int userage;
public Users(){
}
public Users(String username,int userage){
this.userage=userage;
this.username=username;
}
private Users(int userage){
this.userage=userage;
}
public Users(String username){
this.username=username;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getUserage() {
return userage;
}
public void setUserage(int userage) {
this.userage = userage;
}
}
方法的使用
import java.lang.reflect.Constructor;
public class GetConstructor {
public static void main(String[] args) throws Exception {
Class clazz=Users.class;
Constructor[] arr = clazz.getDeclaredConstructors(); //返回所有构造方法
for(Constructor c:arr){
System.out.println(c);
}
System.out.println("---------------");
Constructor[] arr_1 = clazz.getConstructors(); //仅返回public类构造方法
for(Constructor c:arr_1){
System.out.println(c);
}
System.out.println("-------------------");
Constructor c1 = clazz.getDeclaredConstructor(int.class); //返回指定构造方法,包含private类型的构造方法
System.out.println(c1);
System.out.println("------------------");
Constructor c2 = clazz.getConstructor(null);//返回指定构造方法,不包含private类型的构造方法
System.out.println(c2);
}
}
通过构造方法创建对象
import java.lang.reflect.Constructor;
public class GetConstructor_2 {
public static void main(String[] args) throws Exception {
Class clazz = Users.class;
Constructor constructor = clazz.getConstructor(String.class,int.class);
Object o = constructor.newInstance("laogeng",25);
Users users =(Users)o;
System.out.println(users.getUsername()+"\t"+users.getUserage());
}
}