📜  Java中的类 getDeclaredConstructors() 方法和示例(1)

📅  最后修改于: 2023-12-03 15:16:34.027000             🧑  作者: Mango

Java中的类 getDeclaredConstructors() 方法和示例

简介

在Java中,Class类提供了一些方法来获取类的构造函数信息,其中最常用的方法是getDeclaredConstructors()。这个方法用于获取当前类中所有的构造函数,包括public、private、protected和default访问权限的构造函数。

方法签名
public Constructor<?>[] getDeclaredConstructors() 
                  throws SecurityException

该方法返回一个Constructor类型数组,每个元素代表一个类的构造函数。如果该类没有定义任何构造函数,则返回一个长度为0的数组。

示例

下面的示例演示如何使用getDeclaredConstructors()方法获取一个类中所有的构造函数。

public class Person {
  private String name;
  private int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  public Person() {
    this.name = "";
    this.age = 0;
  }

  protected Person(String name) {
    this.name = name;
    this.age = 0;
  }

  private Person(int age) {
    this.name = "";
    this.age = age;
  }

  public static void main(String[] args) {
    // 获取Person类中所有的构造函数
    Constructor<?>[] constructors = Person.class.getDeclaredConstructors();

    // 遍历构造函数数组
    for (Constructor<?> constructor : constructors) {
      System.out.print(Modifier.toString(constructor.getModifiers())); // 访问修饰符
      System.out.print(" " + constructor.getName()); // 构造函数名
      System.out.print("(");

      // 遍历参数列表
      Class<?>[] parameterTypes = constructor.getParameterTypes();
      for (int i = 0; i < parameterTypes.length; i++) {
        if (i > 0) {
          System.out.print(", ");
        }
        System.out.print(parameterTypes[i].getSimpleName());
      }

      System.out.println(")");
    }
  }
}

输出结果:

public Person(String, int)
public Person()
protected Person(String)
private Person(int)

在上面的示例中,我们使用Person类演示了如何使用getDeclaredConstructors()方法获取类的构造函数信息。首先,我们获取Person类中所有的构造函数,然后遍历构造函数数组,依次输出每个构造函数的访问修饰符、构造函数名和参数列表。

总结

getDeclaredConstructors()方法是Java中获取类构造函数信息的常用方法之一,通过该方法可以获取类定义中所有的构造函数,包括public、private、 protected和default访问权限的构造函数。在使用该方法时需要注意异常处理,通常在捕获SecurityException异常时需要特别小心。