I have this bit of ( counter-intuitive ) observations about generic wildcard notation used in collections.
The purpose of the wildcard notation List ext
Extends is for reading from a list , and Super is for writing to a list. Read page 7 of this tutorial : http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf
Read these lecture notes from MIT class in software construction: http://stellar.mit.edu/S/course/6/sp11/6.005/courseMaterial/topics/topic2/lectureNotes/Generics-spring11/Generics-spring11.pdf
hopefully these will make everything clear with wildcards and generics.