gpt4 book ai didi

java - 从Java中的字符串创建新对象

转载 作者:IT老高 更新时间:2023-10-28 13:52:29 28 4
gpt4 key购买 nike

有没有办法从 Java 中的 String 变量创建一个新类?

String className = "Class1";
//pseudocode follows
Object xyz = new className(param1, param2);

另外,如果可能的话,生成的对象是否必须是 Object 类型?

可能有更好的方法,但我希望能够从 XML 文件中检索值,然后实例化以这些字符串命名的类。这些类中的每一个都实现了相同的接口(interface)并派生自同一个父类,因此我可以调用该类中的特定方法。

最佳答案

这就是你想要做的:

String className = "Class1";
Object xyz = Class.forName(className).newInstance();

请注意,newInstance 方法不允许使用参数化构造函数。 (见 Class.newInstance documentation)

如果您确实需要使用参数化构造函数,这就是您需要做的:

import java.lang.reflect.*;

Param1Type param1;
Param2Type param2;
String className = "Class1";
Class cl = Class.forName(className);
Constructor con = cl.getConstructor(Param1Type.class, Param2Type.class);
Object xyz = con.newInstance(param1, param2);

Constructor.newInstance documentation

关于java - 从Java中的字符串创建新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1268817/

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