以下のコードを持つ:
Stack<Integer> integers = new Stack<Integer>();
Stack<? extends Number> numbers = integers;
Number n = numbers.pop();
numbers.push(3);
numbers.push(n);
最後の 2 行でコンパイル エラーが発生しますが、いくつか考えてみましたが、コンパイル エラーが発生する理由がわかりません。
The method push(capture#2-of ? extends Number) in the type Stack<capture#2-of ? extends Number> is not applicable for the arguments (int)
最後の行にコメントすると、上記のコンパイル エラーが引き続き発生しますが、私の理解では、コンパイラはこれらの行から正しい型 (スタック) を推測できるはずです。
どうもありがとう