【发布时间】:2013-06-16 00:42:53
【问题描述】:
在选择正确的重载方法时,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 版本?
【问题讨论】:
-
哇,四个完全不同但都很好的答案。
-
你有一个真实的场景可以分享,还是只是理论上的?
-
哈,我确实有一个真实的生活场景(在一个有比这更多方法的类中)但是后来(在我提出这个问题之后)我意识到我犯了一个错误并且方法确实有不同名字。但是这个问题还是很有趣的。
标签: java generics overloading