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

发布于 2021-02-02 22:48:10

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

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

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

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

关注者
0
被浏览
253
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    这是你想做的:

    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);
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看