考虑从Java谜题下面的代码如何仿制工作
class Gloam<T>{
String glom(Collection<?> objs) {
System.out.println("collection");
String result = "";
for (Object o : objs){
result += o;
}
return result;
}
int glom(List <Integer> ints) {
System.out.println("List");
int result = 0;
for (int i : ints)
result += i ;
return result;
}
public static void main(String[] args) {
List<String> strings = Arrays.asList("1", "2", "3");
System.out.println(new Gloam().glom(strings));
}
}
当我运行这个程序,它提供了类转换异常,但如果我提供的主要方法黄昏类的任何通用的说法,它工作正常。
public static void main(String[] args) {
List<String> strings = Arrays.asList("1", "2", "3");
System.out.println(new Gloam<Date>().glom(strings));
}
我不明白泛型如何在类类型参数中工作?
什么Java版本? –
没错,我很确定它与类型擦除有关。 http://docs.oracle.com/javase/tutorial/java/generics/erasure.html – Sadbrute
@AlexanderPogrebnyak Java 1.6 –