什么是已初始化的泛型?它们如何解决类型擦除问题,为什么不能在没有重大更改的情况下添加它们?
我已经阅读了Neal Gafter关于这个主题的博客,仍然不清楚一些要点。
为什么在给定 Java、JVM 和现有集合 API 的当前状态的情况下,无法创建保留类型信息的集合 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 实现更改?
我不明白什么?