public class Stack {
private LinkedList<? extends Number> stack;
public <T extends Number> void push(T t){
stack.add(t);
}
public <T extends Number>T pop(){
return stack.removeLast();
}
}
添加和刪除最後一個方法都給出編譯時錯誤。請幫我理解我在這裏做錯了什麼?類型不匹配:無法從捕獲#2轉換?將Number擴展爲T
錯誤在推 -
的方法,附加(?捕獲#1-延伸數)在 類型鏈表是不適用於 參數(T)
錯誤在流行 -
類型不匹配:無法從捕獲#2轉換?將Number擴展爲T
請[編輯]你的問題,幷包括錯誤。你也應該描述你試圖達到什麼目標,這個問題是無關緊要的。 –
'?'不是'T',只是在類中的任何地方使用'Stack'和'T' –
2017-04-19 17:48:14
在這種情況下,您不需要泛型。你可以用'Number'的上限替換它們。該代碼很可能(即使它會編譯)導致一些'ClassCastException's。想象一下你'推(...)'一個'雙',但嘗試'彈出()一個'整數'... – Turing85