Collection<?> c = new ArrayList<String>(); c.add(new Object()); // compile time error Since we don�t know what the element type of c stands for, we cannot add objects to it. The add() method takes arguments of type E, the element type of the collection. When the actual type parameter is ?, it stands for some unknown type. Any parameter we pass to add would have to be a subtype of this unknown type. Since we don�t know what type that is, we cannot pass anything in. The sole exception is null, which is a member of every type.
[ August 27, 2007: Message edited by: Ram Chandramouli ]