如何在 Java 中调用私有构造函数
可以使用 java.lang.Class.getDeclaredConstructor() 方法获取类的私有构造函数的构造函数对象。此方法的参数是一个 Class 对象数组,其中包含构造函数的形式参数类型。
演示此内容的程序如下所示 -
示例
package Test;
import java.lang.reflect.*;
public class Demo {
String str;
Double d;
public Demo(String str, Double d) {
this.str = str;
this.d = d;
}
public static void main(String[] args) {
try {
Demo obj = new Demo("Apple", 55.983);
Class c = obj.getClass();
Class[] arguments = new Class[2];
arguments[0] = String.class;
arguments[1] = Double.class;
Constructor constructor = c.getDeclaredConstructor(arguments);
System.out.println("Constructor = " + constructor.toString());
} catch(NoSuchMethodException e) {
System.out.println(e.toString());
} catch(SecurityException e) {
System.out.println(e.toString());
}
}
}输出
Constructor = public Test.Demo(java.lang.String,java.lang.Double)
让我们来了解一下上面的程序。
在 main() 方法中创建了 Demo 类的对象。然后,数组 arguments[] 存储 String.Class 和 Double.Class 对象。最后,可以使用 getDeclaredConstructor() 方法获取构造函数对象并进行显示。演示此内容的代码段如下所示 -
Demo obj = new Demo("Apple", 55.983);
Class c = obj.getClass();
Class[] arguments = new Class[2];
arguments[0] = String.class;
arguments[1] = Double.class;
Constructor constructor = c.getDeclaredConstructor(arguments);
System.out.println("Constructor = " + constructor.toString());
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP