java中字符串中的空值

java中字符串中的空值,java,string,null,Java,String,Null,我在下面的prt(null)中得到一个编译错误: public class Abc { public static void prt(String b) { System.out.println("I m static Method with String"); } public static void prt(Abc n) { System.out.println("I m static Method with Obj

我在下面的
prt(null)
中得到一个编译错误:

 public class Abc {

    public static void prt(String b)
    {
        System.out.println("I m static Method with String");
    }
    public static void prt(Abc n)
    {
        System.out.println("I m static Method with Object");
    }


    public static void main(String[] args) {
        prt(null);

    }

}
但这门课很好:

public class Abc {

    public static void prt(String b)
    {
        System.out.println("I m static Method with String");
    }
    public static void prt(Object n)
    {
        System.out.println("I m static Method with Object");
    }


    public static void main(String[] args) {
        prt(null);

    }

}

请帮助我理解字符串、任何类对象和对象类对象中的空值。

您应该仔细阅读完整的编译器消息。它可能抱怨调用prt(null)不明确。 事实上,您应该键入它:prt((String)null)prt((Abc)null)让编译器知道要调用什么方法

要探索的引文:

它将调用参数类型为 其他方法的参数类型。当心!参数类型为 由对象的声明类型而不是其实例化类型定义