【发布时间】:2017-12-01 19:28:24
【问题描述】:
预告信息。
public abstract class Person {}
public class A extends Person{}
public class B extends Person{}
public class C extends Person{}
public X getPersonByType(String type){
//This Method will return either A or B or C based on type
//what should X be ?
}
我需要创建一个方法,该方法接受String 并返回一个对象,该对象是Person 的子类型。
更多信息。 每个 A B C 类都有一个属性 public List 角色。这些不能移动到 Person 类,因为我需要这些唯一命名的(JPA 多对多表)。
现在如果可能,我不希望它返回person,因为我将无法访问角色属性(Person 不知道)。我也更喜欢不需要我强制转换或使用 instanceOf 的解决方案(如果可能的话)(如果可能的话)。
P.S 试过 <? extends Person> 但 Eclipse 给了我错误“缺少返回类型的方法”
【问题讨论】:
标签: java oop inheritance