これが私のプログラムです。コンパイル時エラーが発生する理由がわかりません。
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List< ? extends Number > list = new ArrayList<Integer>();
list.add(6); // Compile Time Error
System.out.println(list);
}
}
しかし、次のプログラムは正常に動作します
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List< ? super Number > list = new ArrayList<Number>();
list.add(6);
System.out.println(list);
}
}
Eclipseからのエラー:
Eclipseからのエラーの説明は次のとおりです。
リスト型のメソッドadd(int、capture#1-of?extends Number)は、引数(int)には適用できません。