【发布时间】:2011-04-04 11:44:46
【问题描述】:
我知道包装类是什么,它们将原始类型(例如 int、double 等)包装到各自类的对象中。
但是,为什么我们首先需要 Wrapper 类?为什么不简单地使用我们拥有的原始类型呢?
【问题讨论】:
标签: java
我知道包装类是什么,它们将原始类型(例如 int、double 等)包装到各自类的对象中。
但是,为什么我们首先需要 Wrapper 类?为什么不简单地使用我们拥有的原始类型呢?
【问题讨论】:
标签: java
Java 使用原始类型,例如 int、char、double 来保存 语言支持的基本数据类型。
有时需要创建这些对象的对象表示 原始类型。
这些是仅处理此类对象的集合类。一 需要将原始类型包装在一个类中。
为了满足这一需求,java 提供了对应于每个原始类型的类。基本上,这些类封装或包装类中的原始类型。
因此,它们通常被称为类型包装器。类型包装器 是在对象中封装原始类型的类。
包装器类型有字节、短整型、整型、长整型、字符型、 布尔型、双精度型、浮点型。
【讨论】:
您可以使用 Number 对象而不是原语的三个原因:
来源:
【讨论】:
i.MAX_VALUE 这样的东西。此外,MIN_VALUE / MAX_VALUE 常量属于原始类型。
包装类用于将任何原始类型转换为对象。原始数据类型不是对象,它们不属于任何类,它们是在语言本身中定义的。在只支持对象的数据结构中存储时,需要先将原始类型转换为对象,所以我们选择包装类。
【讨论】:
Java 是一种面向对象的语言,正如前面所说,Java 中的一切都是 一个东西。但是原始人呢?他们有点被排除在外 对象的世界,即它们不能参与到对象中 活动,例如从方法作为对象返回,以及 被添加到对象集合等中。作为对此的解决方案 问题,Java 允许您将原语包含在 通过使用所谓的包装类来创建对象。
【讨论】:
Java 是一种面向对象的编程语言。我想你也可以问 - 为什么我们有原语,为什么一切都不只是一个对象?
Java 设计人员将两者分开以保持简单。当您需要适合面向对象世界的类型时使用包装器 - 例如多态性、集合等。当您需要效率时使用原语。
【讨论】:
我想到的一个务实的原因是对象可以为空,而基元不能*。如果我不能确保一个函数可以返回一个 int,那么使用包装器是处理获得我期望的 int 的唯一方法。自动装箱负责其余的工作。
【讨论】:
在集合中使用包装器的示例,您可以使用 ArrayList<Integer>,但不能使用 ArrayList<int> 与 HashMaps 等。为了获得类型安全,我们使用泛型,泛型需要对象而不是基元.
【讨论】:
当需要一个 Object 时,使用包装类而不是原始类型。
例如,在集合中,ArrayList 可能包含 Object 的任何子类的实例,但由于原始类型不是 Object,它们不能包含在 ArrayList 中。
【讨论】:
几个可能的原因:
【讨论】: