Java null是否具有对象类型?
为什么这个输出是:“内部字符串参数方法”?不是空的“对象”类型吗Java null是否具有对象类型?,java,Java,为什么这个输出是:“内部字符串参数方法”?不是空的“对象”类型吗 将调用最具体的匹配方法。更多信息请点击此处: 是的,但是null也是字符串类型和所有其他类型,因此它选择最具体的调用方法。更具体地说,nullliteral将调用字符串版本,原因见其他答案 另一方面: class A { void printVal(String obj) { System.out.println("inside String argument method"); }
将调用最具体的匹配方法。更多信息请点击此处:
null
literal将调用字符串版本,原因见其他答案
另一方面:
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
以外的任何类型。我刚刚尝试添加第三个printVal
重载,printVal(Integer obj)
,看看会发生什么。现在a.printVal(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();
Object myObj = null;
a.printVal(myObj);
}
}