Given the following code
Map<String, String> map = new HashMap<String, String>();
map.put("123", "value");
Integer key = Integer.valueOf(123);
String actual = map.get(key);
What is the value of “actual”?
- Compilation error - key should be a String
- “value”
- null
Answer: null
This blew me away. The whole point of type-safe collections was supposed to provide compile-time checking. However, the only generics method on the Map class is put(K, V). So calling get(Object) doesn’t cause a compilation error, but merely returns null.