Java 使用Short和int重载

Java 使用Short和int重载,java,Java,为什么这个代码会打印int public static void main(String[] args) { short s = 5; A(s); } public static void A(int a){ System.out.println("int"); } public static void A(Short a){ System.out.println("short"); } 因为他比拳击强 原因: 因为在稍后引入装箱之前很久就有了加宽,所以为了不

为什么这个代码会打印int

public static void main(String[] args) {
    short s = 5;
    A(s);
}
public static void A(int a){
    System.out.println("int");
}

public static void A(Short a){
    System.out.println("short");
}

因为他比拳击强

原因:


因为在稍后引入装箱之前很久就有了加宽,所以为了不破坏任何代码,它会这样做。

因为Java的1.0版中添加了向上转换到
int
,而5.0版中添加了自动装箱。更改行为将破坏为旧版本Java编写的代码


然而,像这样的混合类型表明你的设计有问题,这是你在拼图游戏中唯一能找到的东西

此外,任何类的加宽都是合适的。第一个短,第二个短。这是我同事的问题,他正在准备认证。如果有面试问题,我建议你不要那样写代码,因为它让人困惑。;)