java - 扩大原始转换文献

标签 java jls

我正在阅读Java语言的规范,关于赋值的转换,我试图获得基本规则,但有一些文献让我很困惑。有一些出版物这样说:

 Integer s11 = (short)7;

需要先进行加宽基元转换,然后再进行装箱转换。这不是允许的转换。我了解编译错误和作业的上下文。但这真的是一种扩大的原始转换吗? 我的理解如下: 整数 <- 短 <- 短 <- int 我看到整数和短整型之间的差距正在扩大。还是我很困惑?

最佳答案

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

为了能够进行以下装箱转换(从 intInteger),需要扩大基元转换。

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

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/

相关文章:

java - 如何在 CQ 6 中通过 LDAP 对目录进行用户身份验证

java - 空白的最终变量用于创建不可变对象(immutable对象)

java - 嵌套类和成员类是一回事吗?

java - "variable xxx might not have been initialized"调用静态方法时返回相同类型的变量和类型本身的相同名称

Java 重载 : reference to call ambiguous

java - Java 语言规范中的静态方法和类型参数

java - 允许其他人为我的应用程序开发插件

java - 在不知道公共(public)类名的情况下编译 .java 文件

java - 不同OS环境下对JUnit测试的不同期望

java - 标签是否是 Java 语句?