日期:2014-05-20  浏览次数:20676 次

为什么Java的容器不能装原始类型如int等,这个设计为了什么呢?
如题,要是Java的容器运行其中的对象是int,char之类的基本类型,会有什么问题么?

------解决方案--------------------
  java的容器中可以放基本的数据类型,但是是以包装类的形式,如int 在 容器中是先包装成Integer,再转变成Object存放。任何一种数据类型或者对象放进容器中后都会失去原有的类型,变成 Object,从容器中取出后进行转型就可以了
------解决方案--------------------
容器类里放的其实是对象,基本类型不是完全的对象,所以在会转换为相应的封装类
------解决方案--------------------
因为java 总的一层来说:
万物皆对象..
而容器里面可以存储基本数据类型 
其中经历了(装箱的一个过程.)

如果说好处的:
万物皆对象..,你没对象就是不靠谱.
------解决方案--------------------
因为基本类型不是对象
------解决方案--------------------
Integer 等关键字将基本类型数据转换成Object 类型
------解决方案--------------------
引用:
引用:

java的容器中可以放基本的数据类型,但是是以包装类的形式,如int 在 容器中是先包装成Integer,再转变成Object存放。任何一种数据类型或者对象放进容器中后都会失去原有的类型,变成 Object,从容器中取出后进行转型就可以了


我的问题是: 为什么当初Java的容器要这样设计,不能直接支持原始类型。
这样设计有什么好处,或者说有什么历史原因……


 《Think in java》 中是这样解释的: 由于当初编写集合时,那个集合的程序员根本不知道用户到底想把什么类型置入集合。若指示某个集合只允许特定的类型,会妨碍它成为一个“常规用途”的工具,为用户带来麻烦。为解决这个问题,集合实际容纳的是类型为Object的一些对象的句柄。             举个例子,如果集合里面放的是  Cat类型,那么只能放cat,放个  狗 Dog 进去就会报错 ,如果设计成Object,任何动物都可以放到集合里