为什么Java中有包装器类?

为什么Java中有包装器类?,java,Java,我知道什么是包装类,它们将基本类型(例如int、double等)包装到各自类的对象 但是,为什么我们首先需要包装器类呢?为什么不直接使用我们拥有的基元类型呢?Am在集合中使用包装器的示例,您可以有一个ArrayList,但不是与HashMap等相同的ArrayList。为了获得类型安全性,我们使用泛型,泛型需要对象而不是原语。几个可能的原因: 因此可以使用空值 收藏 将一般/多态性与其他对象一起视为对象 我脑子里想不出的一个实用理由是,对象可以为空,原语不能*。如果我不能确保函数可以返回int

我知道什么是包装类,它们将基本类型(例如int、double等)包装到各自类的对象


但是,为什么我们首先需要包装器类呢?为什么不直接使用我们拥有的基元类型呢?

Am在集合中使用包装器的示例,您可以有一个
ArrayList
,但不是与HashMap等相同的
ArrayList
。为了获得类型安全性,我们使用泛型,泛型需要对象而不是原语。

几个可能的原因:

  • 因此可以使用空值
  • 收藏
  • 将一般/多态性与其他对象一起视为对象

    • 我脑子里想不出的一个实用理由是,对象可以为空,原语不能*。如果我不能确保函数可以返回int,那么使用包装器是处理获取所需int的唯一方法。自动装箱负责其余部分。

      当需要对象时,使用包装类而不是基元类型


      例如,在集合中,ArrayList可能包含对象的任何子类的实例,但由于基元类型不是对象,它们不能包含在ArrayList中。

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

      Java设计人员将这两个部分分开,以保持简单。当您需要适合面向对象世界的类型(如多态性、集合等)时,可以使用包装器。当您需要效率时,可以使用原语

      Java是一种面向对象的语言,正如所说的,Java中的一切都是面向对象的 物体。但是原语呢?他们有点被排除在外了 对象的世界,即它们不能参与对象 活动,例如作为对象从方法返回,以及 正在添加到对象集合等。为了解决这个问题 问题是,Java允许您将原语包含在 通过使用所谓的包装器类来创建对象

      包装类:
    • Java使用基本类型,如int、char、double来保存 该语言支持的基本数据类型

    • 有时需要创建这些对象的对象表示 基本类型

    • 这些是仅处理此类对象的集合类。一个 需要在类中包装基元类型

    • 为了满足这一需求,java提供了对应于每种基本类型的类。基本上,这些类封装或包装类中的基元类型

    • 因此,它们通常被称为类型包装器。类型包装器 是在对象中封装基元类型的类

    • 包装类型有字节、短、整数、长、字符、, 布尔型,双精度,浮点型


    • 包装类用于将任何基元类型转换为对象。基元数据类型不是对象,它们不属于任何类,它们是在语言本身中定义的。当存储在只支持对象的数据结构中时,需要首先将基元类型转换为对象,因此我们选择包装类。

      使用数字对象而不是基元有三个原因:

    • 作为期望对象的方法的参数(通常在 操纵数字集合)
    • 使用类定义的常量,例如MIN_值和 最大值,提供数据类型的上限和下限
    • 使用类方法将值转换为其他 基本类型,用于在字符串之间进行转换,以及 在数字系统(十进制、八进制、十六进制、, 二进制)
    • 资料来源:


      另请参见:在代码中保留简单的语法,并允许在直观的位置放置有用的静态助手方法。Double.compare是一个很好的示例泛型是在包装类之后很久才引入的(JDK1.1)我想你也可以问一下,为什么我们有原语,为什么所有的东西都不仅仅是一个对象?为什么我们需要多态性中的包装类?你能提供一个例子吗?请@samitgaurI不要得到第2项。无论如何,您不应该使用类似于
      i.MAX\u值的东西。此外,
      MIN\u值
      /
      MAX\u值
      常量为基元类型。