具有以下代码:
Stack<Integer> integers = new Stack<Integer>();
Stack<? extends Number> numbers = integers;
Number n = numbers.pop();
numbers.push(3);
numbers.push(n);
我在最后两行得到编译错误,但虽然我已经考虑过它,但我不明白为什么会出现编译错误。
The method push(capture#2-of ? extends Number) in the type Stack<capture#2-of ? extends Number> is not applicable for the arguments (int)
当我评论最后一行时,我仍然得到上述编译错误,但据我了解,编译器应该能够从这些行中推断出正确的类型(堆栈)。
非常感谢