为什么使用带有int参数的方法而不是使用Short参数的方法?

时间:2018-02-02 07:22:13

标签: java boxing autoboxing

考虑此代码并使用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

0 个答案:

没有答案