考慮從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 –