Я прочитал на эту тему блог Нила Гафтера и мне все еще неясно по ряду пунктов.
Почему невозможно создать реализации API коллекций, которые сохраняют информацию о типе с учетом текущего состояния Java, JVM и существующих API коллекций? Не могли бы они заменить существующие реализации в будущей версии Java таким образом, чтобы была сохранена обратная совместимость?
Например:
List<T> list = REIList<T>(T.Class);
Где REIList выглядит примерно так:
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 ...
И методы используют Object o и Class klass для получения информации о типе.
Почему для сохранения общей информации о классе требуются языковые изменения, а не просто изменение реализации JVM?
Что я не понимаю?