嗨,我正在制作一个程序,该程序接收一个String作为输入,并基于该String创建一个类的实例。
问题是我的程序将来可能会有新的类,我希望当这种情况发生时,我不必对代码进行太多更改,因此,我想避免使用if或switch链。
例如,如果我收到“ Class1”作为输入,我想创建该类的实例
但是如果将来我希望能够创建“ Class2”的实例,则不需要通过在开关上添加新的if或新的情况来更改先前的代码。
反正有这样做吗?
最佳答案
您需要使用Reflection API。
您的字符串也将具有包的完整路径
String yourClassPathPackage = "com.your.class.path.YourClass";
YourClass = (YourClass) Class.forName(yourClassPathPackage).newInstance();