【发布时间】:2013-06-16 05:29:40
【问题描述】:
我有一个重新升级 java 泛型的问题。 据我所知,通用信息仅在编译时可用,通过一个称为“类型擦除”的过程所有类型信息 编译代码并制作 .class 文件后就消失了
即一旦 .java 文件被编译,List myList = new arrayList() 就是 .class 文件字节码所具有的,即使该列表在 .java 文件中被声明为字符串列表。
话虽如此,请考虑以下情况。
我有一个带有签名方法的罐子
public void check(List<String> p)
当我从另一个代码调用此方法时,编译器强制检查方法的参数应仅为List<String>,仅此而已。
既然检查方法存在于jar(.class文件)中,编译器如何知道List<String>所需的TYPE信息,如果TYPE信息
制作 .class 文件时已被删除?
【问题讨论】:
-
您的问题不包含一个通用的示例...?
标签: java