用Short和int重载

为什么这段代码会打印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"); } 

因为upcasting to int是在Java 1.0版本中,并且在5.0版本中添加了自动装箱。 更改行为会破坏为旧版Java编写的代码。

然而,像这样的混合类型表明你的设计有问题,它只是你会在益智游戏中找到的东西。 ;)

因为加宽节拍拳击

原因:

因为在很长一段时间之前很长时间才引入拳击,所以不要打破任何代码它会这样做。