Originally posted by sentil kumar:
ArrayList<? extends Number> l = new ArrayList<Integer>();
l.add(new Integer(12));
// compile time error
we can not add a element to wild card generic type reference.
ArrayList<? super Number> list = new ArrayList<Number>();
list.add(new Float(12.3));
adding Float object which is not super class of Number.
Super Rule is add the super class of Number object or lower bound object
please explain how it is compiling with out error
The list can hold a Number or Object. Since a Float is a Number, you can add it.