gpt4 book ai didi

java - Java 中的自动装箱和加宽

转载 作者:行者123 更新时间:2023-12-01 07:47:47 25 4
gpt4 key购买 nike

以下程序打印 Object 作为输出,当我删除包含 Object 作为参数的重载方法时,出现以下编译时错误:

The method m1(Long) in the type LangPackage is not applicable for the arguments (int)

 public class A {
public static void main(String args[])
{
int x = 0;
m1(x);

}
static void m1(Long l) {
System.out.println("long");

}

static void m1(Object l) {
System.out.println("Object");

}
}

我的疑问是为什么对象允许自动装箱后加宽,而不是Long类型

最佳答案

自动装箱int装箱为Integer

Integer 是一个 Object,但它不是 Long。因此不能选择static void m1(Long l)

如果您使用 long 参数调用该方法(即,如果 xlong),它将被自动装箱为 Long,并且 static void m1(Long l) 优于 static void m1(Object l)

关于java - Java 中的自动装箱和加宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47375111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com