假设我有一个这样的继承结构:
abstract class Fruit {}
class Apple extends Fruit {}
class Orange extends Fruit {}
在我的应用程序中,我有一个采用"类型"像这样的论点:
public Fruit getFruit(String type) {
if (type.equals("Apple")) {
return new Apple();
} else if (type.equals("Orange") {
return new Orange();
} else {
return null;
}
}
我的问题是,我怎样才能在这里一般性地初始化水果实例,以便我没有通过这个if / else链?有没有这样的方法,我可以有一个Fruit()构造函数,它接受一个参数,指定要初始化的子类?喜欢"新水果(" Apple")"。
为过度简化而道歉,但这是我的问题的关键。我应该提一下,Fruit和它的孩子实际上是 TABLE_PER_CLASS JPA继承策略,类型来自 FruitPicker 中的列实体。如果有帮助,每个水果都会引用生成它的 FruitPicker 。