gpt4 book ai didi

java - 使用类名创建实例并调用构造函数

转载 作者:bug小助手 更新时间:2023-10-28 10:38:14 25 4
gpt4 key购买 nike

有没有办法在给定类名(动态)的情况下创建特定类的实例并将参数传递给它的构造函数。

类似:

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 - 使用类名创建实例并调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6094575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com