当前位置: 代码迷 >> J2SE >> 为啥java的容器必须存储object继承类而不能存int等类型
  详细解决方案

为啥java的容器必须存储object继承类而不能存int等类型

热度:6   发布时间:2016-04-23 21:51:34.0
为什么java的容器必须存储object继承类而不能存int等类型?
基础类型int,bool等为什么不能用于容器的存储?

既然java1.5以后容器就支持泛型的编程,为什么仍然要求存储Interger,boolean之类的类型呢? 这个java泛型是假的?

------解决方案--------------------
java的泛型在编译期间都是会被擦除的。。。。
------解决方案--------------------
这是java面向对象的一种程序设计思想,任何程序都是从基础类继承开来,好比生物是祖先,动物是生物的一种,人是用动物进化而来的,虽然人是个特列,但为了你以后写程序方便还是要从生物类继承下来,泛型就好像给这个人细分,是白种人,黄种人还是黑种人,为了避免一开始的时候定死这个角色所以才用泛型。其实在机器执行时都是自动生成你设定好的类型创建对象然后运行,c++也一样。
------解决方案--------------------
首先,boolean是基础类型,不存在bool类型

然后,泛型只针对引用类型,这是因为泛型可以看做只是一个编译期的类型检查工具,它的本质是Object指针,自然不能用于基本型。

虽然我不知道你为什么要纠结这个,但还是要让你去看一下trove的几个库。它为每一种基本类型都实现了对应的Collection中的几个类(Set/Map/List等)
  相关解决方案