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

解决方案 »

  1.   

    java的泛型在编译期间都是会被擦除的。
      

  2.   

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

  3.   

    首先,boolean是基础类型,不存在bool类型然后,泛型只针对引用类型,这是因为泛型可以看做只是一个编译期的类型检查工具,它的本质是Object指针,自然不能用于基本型。虽然我不知道你为什么要纠结这个,但还是要让你去看一下trove的几个库。它为每一种基本类型都实现了对应的Collection中的几个类(Set/Map/List等)