Java 使用类名称创建实例并调用构造函数

有没有一种方法可以给定类名称(动态)来创建特定类的实例,并将参数传递给其构造函数

就像是:

Object object = createInstance("mypackage.MyClass","MyAttributeValue");

"MyAttributeValue"的构造函数的参数在哪里MyClass

回答:

是的,类似:

Class<?> clazz = Class.forName(className);

Constructor<?> ctor = clazz.getConstructor(String.class);

Object object = ctor.newInstance(new Object[] { ctorArgument });

当然,这仅适用于单个字符串参数,但是你可以轻松地对其进行修改。

注意,类名必须是完全合格的,即包括名称空间。对于嵌套类,你需要使用美元(因为这是编译器使用的美元)。例如:

package foo;

public class Outer

{

public static class Nested {}

}

要获得该Class对象,你需要Class.forName("foo.Outer$Nested")

以上是 Java 使用类名称创建实例并调用构造函数 的全部内容, 来源链接: utcz.com/qa/422077.html

回到顶部