12.3.4 自动装箱/拆箱有助于防止错误
除了可以提供便利之外,自动装箱/拆箱还有助于防止错误。例如,分析下面的代码:
该程序不会显示期望的数值1000,而会显示.24!原因是:通过byteValue()方法对iOb中的值进行手动拆箱,会导致存储在iOb中的值(在本例中是1000)被截断。结果是将垃圾值.24赋给i。自动拆箱可以防止这种类型的错误,因为iOb中的值会总是会被拆箱为与int类型兼容的值。
通常,因为自动装箱总是会创建正确的对象,并且自动拆箱总是会产生正确的数值,所以不会产生错误类型的对象或数值。在极端情况下,如果您所期望的类型和自动装箱/拆箱生成的类型不同的话,仍然可以对数值进行手动装箱/拆箱。当然,这会丢失自动装箱/拆箱带来的好处。通常,新代码应当使用自动装箱/拆箱。这是编写现代Java代码的方式。