package org.study.algos;
public class Study {
public static void main(String[] args) {
A a = new A();
a.m1(null);
}
}
class A {
public void m1(String s) {
System.out.println("String");
System.out.println(s);
}
public void m1(Object obj) {
System.out.println("Object");
System.out.println(obj);
}
}在这里,输出是
字符串空
为什么JVM要将方法解析为带有字符串参数的方法?
提前感谢J
发布于 2010-04-09 14:53:47
这是一个相当精细的算法,在JLS 15.12中详细介绍。但是这里相关的部分是15.12.2,它说“最具体的是被选中的。”对象和字符串重载都是“可访问和适用的”(该字符串适用,因为null文字是所有类型的引用),并且字符串更具体。
编辑:更正部分,每个句法。
https://stackoverflow.com/questions/2608394
复制相似问题