niv*_*vis 1 java generics list extend
我有一个泛型类"SimpleList"(摘录):
public abstract class SimpleList<T> {
protected List<T> list;
public SimpleList(List<T> list) {
this.list = list;
}
}
Run Code Online (Sandbox Code Playgroud)
另一个扩展它的类"TrackList"(摘录):
public class TrackList extends SimpleList {
public TrackList(List<XmlTrack> list) {
super(list);
}
}
Run Code Online (Sandbox Code Playgroud)
在"TrackList"中,我指定该列表用于保存"XmlTrack"类型的对象.但是,似乎无法从该列表中获取对象并访问其方法.例如,这不起作用:
list.get(0).someMethodSpecificToXmlTrack()
我不明白为什么这不起作用?"SimpleList"中的列表是否设置为仅保存"XmlTrack"?
Edw*_*rzo 12
您需要将其定义为
public class TrackList extends SimpleList<XmlTrack> {
public TrackList(List<XmlTrack> list) {
super(list);
}
}
Run Code Online (Sandbox Code Playgroud)
因为它SimpleList
是通用的,但是在扩展它时没有指定类型参数.