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

W

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

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

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

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

道维·史特劳斯(Dawie Strauss):

这是您想做的:

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

请注意,newInstance方法不允许使用参数化的构造函数。(请参阅Class.newInstance文档

如果确实需要使用参数化的构造函数,则需要执行以下操作:

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文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章