Chris Mazzola Chris Mazzola - 2 years ago 94
Java Question

Why aren't Java Collections remove methods generic?

Why isn't Collection.remove(Object o) generic?

Seems like

could have
boolean remove(E o);

Then, when you accidentally try to remove (for example)
instead of each individual String from a
, it would be a compile time error instead of a debugging problem later.

Answer Source

Josh Bloch and Bill Pugh refer to this issue in Java Puzzlers IV: The Phantom Reference Menace, Attack of the Clone, and Revenge of The Shift.

Josh Bloch says (6:41) that they attempted to generify the get method of Map, remove method and some other, but "it simply didn't work".

There are too many reasonable programs that could not be generified if you only allow the generic type of the collection as parameter type. The example given by him is an intersection of a List of Numbers and a List of Longs.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download