我需要帮助我需要知道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
很明显,我在尝试以这种方式创建对象时遇到了一个错误,我的问题是,我可以动态创建一个对象,或者尝试使用其他选项来实现我所需要的。非常感谢。
2条答案
按热度按时间pxiryf3j1#
反射是你正在寻找的东西
e5njpo682#
有几种方法可以做到这一点。
其中一个叫做反思,我会让你自己去读。
另一种称为工厂模式。您可以创建一个名为
ObjectFactory
. 在那门课上你会有一个方法public Object createObject(String type)
.在该方法中,您可以检查收到的类型是否是已知类型之一,并且可以基于该类型创建正确类的示例。最好您的类实现相同的接口。当然,您的方法将返回该接口的示例(或公共基类)。