【发布时间】:2017-04-18 15:45:35
【问题描述】:
我正在阅读泛型中类型擦除的概念。在执行以下代码时,我感到困惑。
public class CollectionsWild {
void Test(Collection<?> t){
System.out.println("Collection");
}
void Test(List<Integer> t){
System.out.println("List");
}
public static void main(String[] args) {
CollectionsWild o = new CollectionsWild();
o.Test(new ArrayList<String>());
}
}
根据类型擦除概念,“List<Integer> t”被转换为字节码中的“List t”。那么为什么我的方法测试被称为以 Collection 作为参数。它应该调用以List为参数的方法
【问题讨论】:
-
谢谢,但您提供的链接与我的要求无关..
标签: java generics collections overloading