繁体   English   中英

使用 Java 变量的值创建对象

[英]Create Object using the value of a Java variable

我需要帮助我需要知道 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

显然,我在尝试以这种方式创建对象时遇到错误,我的问题是我可以动态创建一个对象或其他一些选项来尝试实现我需要的。 谢谢

反射是你正在寻找的

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

有几种方法可以做到这一点。

一种叫做反思,我会让你自己阅读。

另一种称为工厂模式。 您可以创建一个名为ObjectFactory的类。 在该类中,您将拥有一个方法public Object createObject(String type)

在该方法中,您可以检查您收到的类型是否是您已知的类型之一,并且您可以根据该类型创建正确类的实例。 你的类最好实现相同的接口。 那么当然你的方法会返回该接口的实例(或一个公共基类)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM