考虑此代码并使用Java 1.8:
public class Main {
public static void go(Long n) {
System.out.println("Long ");
}
public static void go(Short n) {
System.out.println("Short ");
}
public static void go(int n) {
System.out.println("int ");
}
public static void main(String[] args) {
short y = 6;
long z = 7;
go(y);
go(z);
}
}
为什么JVM在调用go(y)时调用方法go(int),其中y是短基本类型?
Java docs说,short应该装在Short对象上。任何人都可以在调用方法go(y)时解释实际发生的事情,其中y是短原始类型的吗?
这件事的输出是
int
Long