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();
}
}
Run Code Online (Sandbox Code Playgroud)
添加和删除最后一个方法都会给出编译时错误。请帮助我理解我在这里做错了什么?
推送时出错 -
LinkedList 类型中的方法 add(capture#1-of ? extends Number) 不适用于参数 (T)
弹出错误 -
类型不匹配:无法从 capture#2-of 转换?将 Number 扩展到 T
?
T
与您尚未T
在类中定义的东西不同(仅适用于这些方法)。因此我建议你让整个Stack
类变得通用:
public class Stack<T extends Number> {
private LinkedList<T> stack;
Run Code Online (Sandbox Code Playgroud)
T
然后你可以在你的push()
and方法中使用pop()
。
归档时间: |
|
查看次数: |
6203 次 |
最近记录: |