class A{}
がある状態で、
List<? extends A> list = new ArrayList<A>();
list.add(new A());
がエラーになり
List<? super A> list = new ArrayList<A>();
list.add(new A());
が大丈夫なのはどういう理由なのでしょうか?