拆箱 - 与单独拆箱相比,它如何成为显式使用 intValue() 的更好方法

unboxing - how it becomes a better way to explicitly use intValue() compared to unboxing by itself

我正在阅读 O'REILLY Java8 袖珍指南时看到这条关于拆箱的建议[在第 30 页]

注意:对于这些示例,原始变量以大写字母 P 结尾。这不是惯例。

以下示例显示了可接受但不推荐的拆箱用法

制定体重津贴

weightLimitP = weightLimitP + weightAllowanceW;

这个表达式最好用intValue()的方式来写,如下所示:

weightLimitP = weightLimitP + weightAllowanceW.intValue();

问题:我想知道为什么第二种方法更好?我的意思是,它是什么意思 'better'。和自己开箱有什么区别

注意:本例中的包装器class是Integer

这两个代码片段将生成 exactly the same bytecode。所以 "better" 纯粹是风格问题,因此也是意见问题。

它编译成相同的代码。但它 可能 被认为是更好的风格。原因:现在可以一眼看出可能会引发 NullPointerException 或者它是一个包装器 class,原始 class 会更好。

这与代码阅读多于编写的格言相呼应。