Java Puzzlers のコードに従うことを検討してください
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));
}
}
このプログラムを実行すると、クラス キャスト例外が発生しますが、メイン メソッドで Gloam クラスにジェネリック引数を指定すると、正常に動作します。
public static void main(String[] args) {
List<String> strings = Arrays.asList("1", "2", "3");
System.out.println(new Gloam<Date>().glom(strings));
}
クラス型パラメーターでジェネリックがどのように機能するかわかりませんか?