方法重载时参数传递 Null,求高人指点
代码如下
- 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{ }