为什么null会接受字符串的方法
class Test {
public static void test(String s)
{
System.out.println("In String");
}
public static void test(Object o) {
System.out.println("In Object");
}
public static void main(String args[]) {
test(null);
}
}
我希望结果是 在对象中 通常在((“”)
中传递字符串答案 0 :(得分:1)
Java将始终尝试调用方法的最特定版本。这是Java语言规范的一部分。
检查此答案以获取更多详细信息以及指向JLS的链接: https://stackoverflow.com/a/5229890/1426538
答案 1 :(得分:0)
请参见JLS § 15.12.2。
如果可以使用多个成员方法并且适用于 方法调用,有必要选择一种方法来提供 运行时方法分派的描述符。 Java编程 语言使用选择最具体方法的规则。
非正式的直觉是,一种方法比 如果可以传递第一种方法处理的任何调用,则返回另一个 不会出现编译时错误的情况。