Java中的通用方法能否根据输入类型调用特定的其他方法?
我尝试了下面的示例,希望能够清晰表达问题。
class X {
public void pr(Object s) {
System.out.println("Object");
}
public void pr(String s) {
System.out.println("String");
}
public <T> void go(T x) {
this.pr(x);
}
public static void main(String[] args) {
String v = "hello";
X x = new X();
// Both print "Object", while I want "String"
x.go(v);
x.<String>go(v);
}
}
我希望go()调用pr(String)。但是无论我怎么做,都会调用pr(Object)。
上面的示例仅用于演示,实际应用要复杂得多。
提前致谢。
public void go(Object x)
。因此,x
的声明类型是Object
。 - JB Nizet