我正在尝试使用抽象方法创建一个抽象类,它应该能够返回任何类型的列表,其中的项目扩展为SuperBean
.
稍后我想创建一个可以将项目添加到该列表的通用类。例子:
class AbstractService<T extends SuperBean> {
//this is what I'm aiming for
void add(T item) {
// "is not applicable for the arguments (T)"
superBean.getSublist().add(item);
}
}
abstract class SuperBean {
abstract List<? extends SuperBean> getSublist();
}
class MyBean1 extends SuperBean {
List<MyBean2> sublist;
List<MyBean2> getSublist() {
return sublist;
}
}
class MyBean2 extends SuperBean {
List<MyBean3> sublist;
List<MyBean3> getSublist() {
return sublist;
}
}
问题:我必须如何定义abstract getSublist()
类以便我可以添加任何T item
实现SuperBean
?