J'ai lu Neal Gafter blog sur le sujet et je ne suis toujours pas clair sur un certain nombre de points.
Pourquoi n'est-il pas possible de créer des implémentations de l'API Collections qui préservent les informations de type étant donné l'état actuel de Java, de la JVM et de l'API Collections existante ? Ne pourraient-elles pas remplacer les implémentations existantes dans une future version de Java de manière à préserver la rétrocompatibilité ?
A titre d'exemple :
List<T> list = REIList<T>(T.Class);
Où REIList est quelque chose comme ça :
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 ...
Et les méthodes utilisent Object o et Class klass pour obtenir les informations sur le type.
Pourquoi la préservation des informations sur les classes génériques nécessiterait-elle des modifications du langage plutôt qu'une simple modification de l'implémentation de la JVM ?
Qu'est-ce que je ne comprends pas ?