I instantiate the following list:
// I am just revising generics again and the following is just cursory code!
List<? super Integer> someList = new ArrayList<Object>();
someList.add(new Object());
The above will not work. I get a compiler error. However, the following works:
List<? super Integer> someList = new ArrayList<Object>();
someList.add(11);
I am aware that you can add objects to a collection which contains an unbounded wildcard, not a bounded wildcard.
However, why does the above not work?
An Object is a supertype of an Integer, so why can't I add it?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…