代码如下
- Java code
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); }}
输出结果是:My String
求高人解释
------解决方案--------------------
- Java code
int l=null;String a=null;和这个原理是一样的 定义int类型的变量为其赋值null 报错 并不能转型为intString 毫无压力 具体原理坐等
------解决方案--------------------
《java解惑》上有说明
会找能匹配的最精确的类型
------解决方案--------------------
- Java code
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{ }