我正在阅读Java语言的规范,关于赋值的转换,我试图获得基本规则,但有一些文献让我很困惑。有一些出版物这样说:
Integer s11 = (short)7;
需要先进行加宽基元转换,然后再进行装箱转换。这不是允许的转换。我了解编译错误和作业的上下文。但这真的是一种扩大的原始转换吗? 我的理解如下: 整数 <- 短 <- 短 <- int 我看到整数和短整型之间的差距正在扩大。还是我很困惑?
最佳答案
扩展基元转换是从一种基元类型到另一种基元类型的转换。在您的示例中,所需的加宽基元转换是从 short
到 int
。
为了能够进行以下装箱转换(从 int
到 Integer
),需要扩大基元转换。
如果将表达式分成两个赋值,类型转换会更清晰:
int s11 = (short)7; // widening primitive conversion from short to int
Integer i11 = s11; // boxing conversion from int to Integer
关于java - 扩大原始转换文献,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48090634/