0

例如,取消装箱 Integer 会导致转换为 Integer,然后调用 intValue()。为什么不简单地转换为 Number 后跟必要的 intValue() 来获取原语?自然,问题延伸到拆箱所有其他包装。

4

2 回答 2

0

一方面,我注意到 Integer 是最终的。在对 Integer 类型(引用)的表达式调用 intValue 时,无需检查实例类型是否覆盖 intValue。这对于类型(引用)Number 的表达式是必要的。

于 2012-04-26T04:25:29.910 回答
0

如果Java按照您的建议进行操作,那将破坏装箱/拆箱不会导致精度损失的非常重要的功能。Java 中已经有一个既定原则,即必须使用强制转换运算符明确要求任何丢失精度的转换。写是违法的

final int i = 1L;

所以如果这有效,那就错了:

final int i = Long.valueOf(1);
于 2012-04-26T06:58:57.553 回答