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
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.