ava中的泛型是一个完全编译时的结构-编译器将所有泛型使用转换为正确的类型。这是为了保持与以前的JVM运行时的向后兼容性。
这个:
List<ClassA> list = new ArrayList<ClassA>();list.add(new ClassA());ClassA a = list.get(0);
变成(大致):
List list = new ArrayList();list.add(new ClassA());ClassA a = (ClassA)list.get(0);
因此,任何用作泛型的东西都必须可转换为Object(在此示例中
get(0)返回
Object),而原始类型则不是。因此它们不能用于泛型。



