Java 1.5是否总是可以使用包装类而不是原语?

时间:2012-11-28 15:47:49

标签: java wrapper

前一段时间我们用int字段构建了DTO类,经过几周的开发后,我被要求将这些字段的类型从int更改为Integer。 我认为不可能简单地更改声明中的类型,但经过几次修改后,没有任何编译错误。 这很简单吗?

3 个答案:

答案 0 :(得分:4)

是的,这是因为自动装箱。请参阅http://docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html

但是,如果Integer对象为null,请注意可能由于将Integer对象隐式更改为int而导致的空指针异常。

答案 1 :(得分:1)

Java 5提供了Autoboxing / Unboxing,这就是为什么你没有看到任何编译问题。

int(原始数据类型)到Integer的转换称为Autoboxing,反向称为Unboxing。

答案 2 :(得分:0)

我宁愿不这样做。在某些情况下,框类型不如图元(例如,因为它们是对象,您可以将它们放在集合中),但是用它们的框类型替换所有图元很少会付出代价。正如其他人已经提到的那样,你必须检查空值。另请注意,监视 new 对象的创建也非常容易。