将 null 作为 int 返回
在 Java 中,尽管为 int 返回 null,temp() 方法也不会引发编译器错误,而当表示为 if 语句时,same() 会执行此操作。这种差异是由于编译器对 null 返回值的解释而产生的。
三元运算符
对于三元运算符,编译器将 null 视为对 Integer 的 null 引用,遵循自动装箱/拆箱规则(Java 语言规范 15.25)。这会导致 int 装箱为 Integer 并转换回来,从而允许 null 返回值。但是,这会在运行时生成 NullPointerException。
if 语句
使用 if 语句时,编译器会强制执行 null 和 int 之间的不兼容类型。它需要一个 int 返回值,并且不允许 null 赋值,这与三元运算符不同,三元运算符允许自动装箱/拆箱转换。
以上是为什么从 `temp()` 方法返回 Null 不会导致 Java 中的编译器错误,而使用 If 语句的 `same()` 会导致编译器错误?的详细内容。更多信息请关注PHP中文网其他相关文章!