Possible Duplicate:
What are the reasons why Map.get(Object key) is not (fully) generic
Java Generics: Why Does Map.get() Ignore Type?
Java Map interface is declared like this:
Interface Map<K,V>
It has such a method:
boolean containsKey(Object key)
Why not
boolean containsKey(K key)?
On the contrary, the List interface has add method that takes parameter of generic type instead of Object:
boolean add(E e).
It's the same reason why you can't add anything to a List<? extends E> because the compiler can't guarantee the type safety (and type erasure makes a runtime check impossible).
This means that when you get a Map<? extends K,V> you wouldn't be able to call contains(K) on it. however contains is general enough that passing random Objects to it won't damage the interface (but makes some errors harder to pick up).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With