<? super Integer>, you call it lower bound. A reference variable parameterized with lower bound <? super Integer> can refer object of the class (List implementor class of-course), that is parameterized with Integer or super class of this as Number and Object.
Lower bound permits you to add objects to the list too, it is not read only like upper bound <? extends A>. You can only add object of class Integer to this list, nothing else.
[EDIT] Compiler knows what is returned from the list is Object, because it could be Integer, Number or Object. Compiler is not sure, so object is returned. [ August 02, 2007: Message edited by: Chandra Bhatt ]