我有一個超類類似擴展它包含的自身名單
class SuperClass {
private String name;
private List<SuperClass> subList;
//getter setters
}
而且我要擴展這個超類中有一些更多的領域,像
class SubClass extends SuperClass {
private String email;
//getter setter
}
現在引用的類,我的問題是因爲SuperClass持有對類型爲SuperClass的對象列表的引用,我將如何確保任何SubClass對象擁有對SubCode類型對象列表的引用拉斯...這甚至有可能嗎?我在這裏做錯了什麼嗎?
編輯 我可以這樣做
class SuperClass {
private String name;
private List<? extends SuperClass> subList;
public SuperClass(List<? extends SuperClass> subList) {
this.subList = subList;
}
}
現在子類只需要調用父類
class SubClass extends SuperClass{
private String email;
private SubClass(List<? extends SuperClass> subList) {
super(subList);
}
}
的構造函數,但現在,如果我想的東西添加到列表,我無法這樣做,因爲PECS(生產者擴展,消費者超級)泛型原理不允許我這樣做。所以,每當我必須添加一個對象到subList時,我將不得不創建一個新列表,然後s et SubClass中的列表
由於子類是** A **父類的構造是有效的。看看實例化SuperClass和SubClass對象的類 – Aubin