繁体   English   中英

null是否具有对象类型?

[英]Does null have Object type?

为什么这个输出:“内部String参数方法”? 不是null“对象”类型?

class A {
    void printVal(String obj) {
        System.out.println("inside String argument method");
    }

    void printVal(Object obj) {
        System.out.println("inside Object argument method");
    }

    public static void main(String[] args) {
        A a = new A();
        a.printVal(null);
    }
}

将调用最具体的匹配方法。 更多信息:

是的,但null也是String类型和所有其他类型,因此它选择要调用的最具体方法。

更具体地说,由于其他答案概述的原因, null 文字将调用String版本。

另一方面:

class A {
    void printVal(String obj) {
        System.out.println("inside String argument method");
    }

    void printVal(Object obj) {
        System.out.println("inside Object argument method");
    }

    public static void main(String[] args) {
        A a = new A();
        Object myObj = null;
        a.printVal(myObj);
    }
}

将打印“内部对象参数方法”。 myObj的类型设置为除String之外的任何类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM