|
|
|
|
移动端

1.5.2 自动装箱/拆箱

《数据结构与算法分析:Java语言描述(原书第3版)》第1章引论,在这一章, 我们阐述本书的目的和目标并简要复习离散数学以及程序设计的一些概念。本节为大家介绍自动装箱/拆箱。

作者:冯舜玺/陈越 译来源:机械工业出版社|2016-04-13 10:50

1.5.2 自动装箱/拆箱

图1-7中的代码写得很麻烦, 因为使用包装类需要在调用write之前创建Integer对象, 然后才能使用intValue方法从Integer中提取int值。在Java 5以前, 这是需要的, 因为如果一个int型的量被放到需要Integer对象的地方, 那么编译将会产生一个错误信息, 而如果将一个Integer对象的结果赋值给一个int型的量, 则编译也将产生一个错误信息。图1-7中的代码准确地反映出基本类型和引用类型之间的区别, 但还没有清楚地表示出程序员把那些int存入集合(collection)的意图。

Java 5矫正了这种情形。如果一个int型量被传递到需要一个Integer对象的地方, 那么, 编译器将在幕后插入一个对Integer构造方法的调用。这就叫作自动装箱。而如果一个Integer对象被放到需要int型量的地方, 则编译器将在幕后插入一个对intValue方法的调用, 这就叫作自动拆箱。对于其他7对基本类型/包装类型, 同样会发生类似的情形。图1-11a用Java 5描述了自动装箱和自动拆箱的使用。注意, 在GenericMemoryCell中引用的那些实体仍然是Integer对象; 在GenericMemoryCell的实例化中, int不能够代替Integer。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

鸟哥的Linux私房菜 基础学习篇(第二版)

本书全面而详细地介绍了Linux操作系统。全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linu...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊