У меня есть код, который выглядит примерно так (часть отрицательного теста метода get
):
import java.util.*;
public class Test {
Map<String, Object> map = new HashMap<>();
public static void main (String ... args) {
Test test = new Test();
test.put("test", "value"); // Store a String
System.out.println("Test: " + test.get("test", Double.class)); // Retrieve it as a Double
}
public <T> T get(String key, Class<T> clazz) {
return (T) map.get(key);
}
public void put(String key, Object value) {
map.put(key, value);
}
}
Я ожидал, что он запустит ClassCastException
, но успешно завершит печать:
Test: value
Почему он не бросает?