Java.lang.Class 类

java.lang.Class.getDeclaredConstructors() 方法返回 Constructor 对象数组,反映该类声明的所有构造函数由该 Class 对象表示。它们是公共构造函数、受保护构造函数、默认(包)访问构造函数和私有构造函数。如果此 Class 对象表示接口、基本类型、数组类或 void,则此方法返回长度为 0 的数组。

语法

public Constructor<?>[] getDeclaredConstructors()
                                         throws SecurityException

参数

不需要参数。

返回值

返回表示此类的所有已声明构造函数的构造函数对象数组。

Exception

如果存在安全管理器 s 并且满足以下任何条件,则抛出 SecurityException:

  • 调用者的类加载器与此类的类加载器不同,并且使用 RuntimePermission("accessDeclaredMembers") 调用 s.checkPermission 方法会拒绝访问此类中声明的构造函数。
  • 调用者的类加载器不是与当前类的类加载器相同或者是其祖先,并且调用 s.checkPackageAccess() 会拒绝访问此类的包。

示例:

下面的示例显示了 java.lang.Class.getDeclaredConstructors() 方法的用法。

import java.lang.*;
import java.lang.reflect.*;

public class MyClass {
  public static void main(String[] args) {
    try {
      Class cls = Class.forName("java.lang.Boolean");

      //打印构造函数
      Constructor c[] = cls.getDeclaredConstructors();
      System.out.println("Constructors are: ");
      for(Constructor i: c)
        System.out.println(i);
        
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}

上述代码的输出将是:

Constructors are: 
public java.lang.Boolean(boolean)
public java.lang.Boolean(java.lang.String)