我正在从一本Enthuware问题书为OCA Java SE 7做准备,当我在运行Java 1.7编译器的Eclipse中进行编译时,会得到不同的输出:
public class TestClass {
void probe(int x) { System.out.println("In ...");} //1
void probe(Integer x) { System.out.println("In Integer");} //2
void probe(long x) { System.out.println("In long");} //3
void probe(Long x) { System.out.println("In LONG");} //4
public static void main(String[] args){
Integer a = 4; new TestClass().probe(a); //5
int b = 4; new TestClass().probe(b); //6
}
}
书籍输出为:
“长整数”
Eclipse中的输出显示“ In Integer and In ...”。
请帮助我确认哪个是正确的答案。谢谢!
最佳答案
您看到的输出是正确的行为。重载的方法将在编译时解决,以实现最佳的数据类型兼容性。检查与为其编写书籍的jdk版本。