拆箱 - 与单独拆箱相比,它如何成为显式使用 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 会更好。
这与代码阅读多于编写的格言相呼应。
我正在阅读 O'REILLY Java8 袖珍指南时看到这条关于拆箱的建议[在第 30 页]
注意:对于这些示例,原始变量以大写字母 P 结尾。这不是惯例。
以下示例显示了可接受但不推荐的拆箱用法
制定体重津贴
weightLimitP = weightLimitP + weightAllowanceW;
这个表达式最好用intValue()
的方式来写,如下所示:
weightLimitP = weightLimitP + weightAllowanceW.intValue();
问题:我想知道为什么第二种方法更好?我的意思是,它是什么意思 'better'。和自己开箱有什么区别
注意:本例中的包装器class是Integer
这两个代码片段将生成 exactly the same bytecode。所以 "better" 纯粹是风格问题,因此也是意见问题。
它编译成相同的代码。但它 可能 被认为是更好的风格。原因:现在可以一眼看出可能会引发 NullPointerException 或者它是一个包装器 class,原始 class 会更好。
这与代码阅读多于编写的格言相呼应。