为什么Java中有包装类?

zen*_*ngr 46 java

我知道包装类是什么,它们将原始类型(例如int,double等)包装到它们各自类的对象中.

但是,为什么我们首先需要Wrapper类?为什么不简单地使用我们拥有它们的原始类型?

fro*_*die 68

几个可能的原因:

  • 因此可以使用空值
  • 要包含在集合中
  • 一般地/多态地将对象与其他对象一起对待


Ada*_*dam 18

使用包装器的例子是Collections,你可以有一个ArrayList<Integer>,但是不能ArrayList<int>HashMaps等.为了获得类型安全,我们使用泛型和泛型需要对象而不是原语.

  • 在包装类(JDK1.1)之后很久就引入了泛型. (4认同)

sam*_*aur 12

Java是一种面向对象的编程语言.我想你也可以问 - 为什么我们有基元,为什么一切都不仅仅是一个对象?

Java设计人员将两者分开以保持简单.当你需要适合面向对象世界的类型时,你可以使用包装器 - 比如多态,集合等.当你需要效率时,你可以使用原语.


neX*_*Xus 8

当期望Object时,使用包装类而不是基本类型.

例如,在Collections中,ArrayList可能包含Object的任何子类的实例,但由于原始类型不是Object,因此它们不能包含在ArrayList中.