方法介绍

image.png

  1. public class Users {
  2. private String username;
  3. private int userage;
  4. public Users(){
  5. }
  6. public Users(String username,int userage){
  7. this.userage=userage;
  8. this.username=username;
  9. }
  10. private Users(int userage){
  11. this.userage=userage;
  12. }
  13. public Users(String username){
  14. this.username=username;
  15. }
  16. public String getUsername() {
  17. return username;
  18. }
  19. public void setUsername(String username) {
  20. this.username = username;
  21. }
  22. public int getUserage() {
  23. return userage;
  24. }
  25. public void setUserage(int userage) {
  26. this.userage = userage;
  27. }
  28. }

方法的使用

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());
    }
}

image.png