日期:2014-05-20 浏览次数:20710 次
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{ }