嗨,我正在制作一个程序,该程序接收一个String作为输入,并基于该String创建一个类的实例。

问题是我的程序将来可能会有新的类,我希望当这种情况发生时,我不必对代码进行太多更改,因此,我想避免使用if或switch链。

例如,如果我收到“ Class1”作为输入,我想创建该类的实例

但是如果将来我希望能够创建“ Class2”的实例,则不需要通过在开关上添加新的if或新的情况来更改先前的代码。

反正有这样做吗?

最佳答案

您需要使用Reflection API。

您的字符串也将具有包的完整路径

String yourClassPathPackage = "com.your.class.path.YourClass";
YourClass = (YourClass) Class.forName(yourClassPathPackage).newInstance();

08-04 14:13