在我的應用程序中,我有一個Board。董事會由單元組成。每個單元格都有一個int值。 有幾種類型的Board將擴展Board。 每種類型的電路板將以不同方式表示電池。例如,一個會使用一個List,anothr會使用一個Tree。java「generic generic type」
原來這就是被試:
public abstract class Board<T> {
T<Cell> cells; //error - The type T is not generic; it cannot be parameterized with arguments <Cell>
protected abstract void setValues(T<Integer> values);
}
不幸的是,我不能將T泛型類型。 我該如何實施?
也許讓'T擴展集合'在你的班級簽名?這樣你可以使用'List'或'Tree'?對我的建議不太自信,如果有必要,我想批評。 –
你能提供一個你將用於'T'的類的例子嗎?通常情況下,您只需將參數化類型嵌套在Board的通用聲明中,但沒有任何意義的是擁有一個不受限制的'T'參數,然後您希望這個參數是通用的;如果'T'是'Integer'呢?此外,這是一種情況,只是子類化'Board'比擁有泛型參數更有意義嗎?畢竟,客戶必須意識到差異,如果它提供了他們的代表。 – chrylis
草圖繪製兩個用例會非常有幫助。特別是你打算如何使用'setValues'方法,電路板應該如何在內部訪問它的'cells',以及'T'可以是什麼類型(當你說「Tree」時,你是指'TreeSet'?是一個'集合',那麼這是相當微不足道的......) – Marco13