これは、Joshua Bloch による Google I/O パズル トークから入手しました。これがコードです
public class Glommer<T> {
String glom(Collection<?> obj){
String result = "";
for(Object o : obj){
result += o;
}
return result;
}
int glom(List<Integer> ints){
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 Glommer().glom(strings));
}
このメイン メソッドは例外をスローします。これnew Glommer
は が生の型であるためであり、そのため のすべてのジェネリックGlommer
が消去されるため、最終int glom(List<Integer> ints)
的にString glom(Collection<?> obj)
.
私の質問は、型消去のためにメソッドを呼び出すべきではないglom()
として呼び出したとしても、このメソッドは効果的であり、型ではないのでしょうか?new Glommer<Integer>().glom(strings)
int glom(List<Integer> ints)
int glom(List ints)
strings
List
Collection