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