扩大原始转换文献

时间:2018-01-04 07:32:23

标签: java jls

我正在阅读Java语言的规范,关于作业的转换,我试图获得基本规则,并且有一些文献让我感到困惑。有些出版物说:

 Integer s11 = (short)7;

需要扩展原始转换,然后进行装箱转换。这不是允许的转换。我理解编译错误和分配的上下文。但真的是一个扩大的原始转换? 我理解如下:       整数< - 短< - 短< - int 我看到Integer和Short之间的扩大。还是我很困惑?

2 个答案:

答案 0 :(得分:3)

扩展原语转换是从一种原语类型转换为另一种原语类型。在您的示例中,所需的扩展基元转换是从shortint

为了进行以下装箱转换(从intInteger),需要扩大原始转换。

如果将表达式分为两个赋值,则类型转换会更清晰:

int s11 = (short)7; // widening primitive conversion from short to int
Integer i11 = s11; // boxing conversion from int to Integer

答案 1 :(得分:1)

是的,它正在加宽,然后是自动装箱,即int <- short后跟Integer <- int