kau*_*ray 9 java boxing casting type-conversion
我在Java中有以下代码:
class Boxing
{
public static void main(String args[])
{
short s = 10;
Integer iRef = s;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么它在编译时会产生错误?如果我明确地将short缩写为表达式中的整数,则会成功编译.因为我在表达式中使用short不是默认情况下应该是整数的类型而不需要显式情况?
Thi*_*ilo 14
你想在这里发生两件事:加宽和自动装箱.
不幸的是,Java只会自动执行两者中的一个.其原因很可能是相当晚(在Java5中)引入了自动装箱,他们必须小心不要破坏现有代码.
你可以做
int is = s; // widening
Short sRef = s; // autoboxing
Integer iRef = (int) s; // explicit widening, then autoboxing
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10422 次 |
| 最近记录: |