代码如下
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   求高人解释

解决方案 »

  1.   

    自己顶一下,参数是null,怎么会输出  My String ,求解释
      

  2.   

    int l=null;
    String a=null;
    和这个原理是一样的 定义int类型的变量为其赋值null 报错 并不能转型为int
    String 毫无压力 
    具体原理坐等
      

  3.   

    《java解惑》上有说明会找能匹配的最精确的类型
      

  4.   

    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{

    }
      

  5.   

    谢谢大家,看了《java解惑》 问题已解决,特别谢谢 ticmy 哥