Java は通常、どのオーバーロードされたメソッドが正しいかを選択するときに、一般的なメソッドよりも通常のメソッドを優先します。これにより、次のsscceが生成される可能性があります。
public class GenericsTest {
public static void main(String[] args) {
myMethod(Integer.class, 10);
myMethod(String.class, "overloaded method");
}
public static <T> void myMethod(Class<T> klass, T foo) {
System.out.println("hello world");
}
public static <T> void myMethod(Class<T> klass, String bar) {
System.out.println(bar);
}
}
出力:
hello world
overloaded method
Java に Generic バージョンを強制的に使用させる方法はありますか?