日期:2014-05-20 浏览次数:20914 次
public class TT {
public void myMethod(Object o) {
System.out.println("My Object");
}
public void myMethod(String s) {
System.out.println("My String");
}
public static void main(String args[]) {
TT t = new TT();
t.myMethod(null);
}
}
int l=null; String a=null; 和这个原理是一样的 定义int类型的变量为其赋值null 报错 并不能转型为int String 毫无压力 具体原理坐等
------解决方案--------------------
《java解惑》上有说明
会找能匹配的最精确的类型
------解决方案--------------------
public class TT {
public void myMethod(Parent o) {
System.out.println("My Object");
}
public void myMethod(Child s) {
System.out.println("My String");
}
/*public void myMethod(String s) {
System.out.println("My String");
}*/
public static void main(String args[]) {
TT t = new TT();
//String s = null;
t.myMethod(null);
}
}
class Child extends Parent{
}
class Parent{
}