java - java中如何使用varargs作为Constructor.getConstructor()的参数

标签 java reflection constructor variadic-functions

我有一个像下面这样的java类,我想通过使用类名动态创建这个类的实例。

class Demo {
    public Demo(String... s) {
    //some initialization here.
    }
}

我想使用以下代码创建一个对象
Class<?> klass = Class.forName("Demo");

Constructor<?> con = klass.getConstructor("**what should be here**");

Object obj = con.newInstance(param1, param2, ...);

最佳答案

String... 只是 String[] 所以你可以使用

Constructor<?> con = klass.getConstructor(String[].class);

请注意,您需要像这样调用构造函数
Object o = con.newInstance((Object) new String[] {"first", "second", "more"});

转换为 (Object) 以进行可变参数调用。

关于java - java中如何使用varargs作为Constructor.getConstructor()的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20277367/

相关文章:

c# - 按字符串创建类的实例,但要考虑隐式转换 - C# 反射

class - Kotlin 类中的初始化 block 位置

java - 为什么编译器在进行 "bad"转换时不给出错误?

java - 在 React 中传递 props/调用函数

java - Netbeans:需要在类路径中包含第 3 方目录

java - equals 和 hashCode 的通用反射辅助方法

c# - 如何使用一个动态生成的对象作为CodeEffects生成器的数据源

java - 如何在 Clojure 中从 Java 中声明的字段获取数组元素的类型?

java - 卡在添加到数组上

java - 是否可以在 Java 应用程序上添加类似 facebook 的按钮?