No ClassCastException beim Umwandeln in einen generischen Typ, der sich von der tatsächlichen Klasse unterscheidet [duplicate]

Diese Frage hat hier bereits eine Antwort:

Casting to generic type in Java löst keine ClassCastException aus? 5 Antworten

Ich habe einen Code, der ungefähr so aussieht (Teil eines negativen Tests der Methodeget):

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);
    }
}

Ich habe erwartet, dass es ein @ wirClassCastException aber es wird erfolgreich gedruckt:

Test: value

Warum wirft es nicht?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage