我有来自外部来源的字符串。基于这个字符串,我必须生成一个对象。我必须生成的所有对象都扩展了相同的抽象基类。我有一个关系“字符串”<->“类”的列表。
我的问题是在哪里做这一代的最佳方式以及如何做?
- 我可以使用 if-else 方法创建单独的类。并在我需要的地方调用它。
- 我可以把它放在这个 if-else 直接放在我需要的地方
- 我可以把它放到抽象类中。
- 添加到抽象类
Map<String,Class>
并尝试使用反射(但我不知道如何) - 别的东西?
abstract class Element {
abstract String getType();
}
class AElement extends Element{
String getType(){return "A";}
}
class BElement extends Element{
String getType(){return "B";}
}
class CElement extends Element{
String getType(){return "C";}
}
class MyObject {
Element element;
MyObject(String text){
//here I conscruct my object form string.
String[] elem = text.split(";");
this.element = someMethod(elem[3]);
}
我知道 elem[3] 将是文本“A”、“B”和“C”,然后我应该在方法 someMethod() 中创建相应的 AElement、BElement 或 CElement 对象。