Ich habe Neal Gafters Blog zu diesem Thema gelesen und bin in einigen Punkten immer noch unklar.
Warum ist es angesichts des aktuellen Status von Java, der JVM und der vorhandenen Sammlungs-API nicht möglich, Implementierungen der Sammlungs-API zu erstellen, bei denen Typinformationen erhalten bleiben? Könnten diese nicht die vorhandenen Implementierungen in einer zukünftigen Version von Java so ersetzen, dass die Abwärtskompatibilität erhalten bleibt?
Als Beispiel:
List<T> list = REIList<T>(T.Class);
Wo REIList so etwas ist:
public REIList<T>() implements List {
private Object o;
private Class klass;
public REIList(Object o) {
this.o = o;
klass = o.getClass();
}
... the rest of the list implementation ...
Die Methoden verwenden Object o und Class klass, um die Typinformationen abzurufen.
Warum erfordert das Beibehalten allgemeiner Klasseninformationen Sprachänderungen und nicht nur eine Änderung der JVM-Implementierung?
Was verstehe ich nicht?