使用java变量的值创建对象

tpgth1q7  于 2021-08-25  发布在  Java
关注(0)|答案(2)|浏览(291)

我需要帮助我需要知道java是否允许使用变量的值动态创建对象。
例子

// I have 2 classes:

     public class Audit {
     private Long idAudit
     // constructors, get and set
     }

     publish class Example {
     private Long idExample
    // constructors, get and set
     }
-------------------------------------------------- -----
// create Audit and Example class object
Audit objAudit = new Audit ();
Example objExample = new Example ();

我的问题是,您能否像我在下面的示例中尝试的那样,使用变量的值创建audit或example类型的对象。例子:

String className = "Audit"; // variable that contains the class of the Object to create
className auditObject = new ClassName (); // I use the variable classname to create the desired object

很明显,我在尝试以这种方式创建对象时遇到了一个错误,我的问题是,我可以动态创建一个对象,或者尝试使用其他选项来实现我所需要的。非常感谢。

pxiryf3j

pxiryf3j1#

反射是你正在寻找的东西

final String className = "Audit";
    final Class<?> clazz = Class.forName(className);
    final Object o = clazz.getConstructor().newInstance();
e5njpo68

e5njpo682#

有几种方法可以做到这一点。
其中一个叫做反思,我会让你自己去读。
另一种称为工厂模式。您可以创建一个名为 ObjectFactory . 在那门课上你会有一个方法 public Object createObject(String type) .
在该方法中,您可以检查收到的类型是否是已知类型之一,并且可以基于该类型创建正确类的示例。最好您的类实现相同的接口。当然,您的方法将返回该接口的示例(或公共基类)。

相关问题