我在 Java 中有以下代码:
class Boxing
{
public static void main(String args[])
{
short s = 10;
Integer iRef = s;
}
}
为什么编译会报错?如果我在表达式中将 short 显式转换为整数,它会成功编译。因为我在表达式中使用了一个 short 类型,所以在不需要显式大小写的情况下,默认情况下它不是应该是整数的类型吗?
最佳答案
你想在这里发生两件事:扩大和自动装箱。
不幸的是,Java 只能自动完成两者之一。原因很可能是自动装箱引入的时间很晚(在 Java5 中),他们必须小心不要破坏现有代码。
你可以做到
int is = s; // widening
Short sRef = s; // autoboxing
Integer iRef = (int) s; // explicit widening, then autoboxing
关于java - 为什么将短变量赋值给 Integer 引用会产生编译时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33868133/