存在几个可能的原因:
包装器的使用示例是在集合中,您可以拥有一个 ArrayList<Integer>
,但不是一个 ArrayList<int>
,HashMap等也是如此。为了获得类型安全性,我们使用泛型,而泛型需要对象而不是基本类型。
Java是一种面向对象的编程语言。我认为你也可以问-为什么我们有原始类型而不是每个东西都是一个对象?
Java设计者将这两者分开以保持简单。当您需要适合面向对象世界的类型(例如多态性、集合等)时,您使用包装器。当您需要效率时,则使用原始类型。
当期望一个对象时,使用包装类而不是原始类型。
例如,在集合中,ArrayList 可以包含任何 Object 子类的实例,但是因为原始类型不是对象,所以不能包含在 ArrayList 中。
包装类用于将任何基本类型转换为对象。基本数据类型不是对象,它们不属于任何类,它们在语言本身中定义。当存储在仅支持对象的数据结构中时,需要先将基本类型转换为对象,因此我们使用包装类。
Java使用基本数据类型,如int、char、double等来保存语言支持的基本数据类型。
有时需要创建这些基本数据类型的对象表示。
这些是仅处理这些对象的集合类。需要将基本类型包装在一个类中。
为满足这个需求,Java提供了与每个基本类型对应的类。基本上,这些类封装或包装了类内的基本类型。
因此,它们通常被称为类型包装器。类型包装器是封装对象中的基本类型的类。
包装类型是Byte、Short、Integer、Long、Character、Boolean、Double和Float。
来源:
i.MAX_VALUE
这样的东西。此外,MIN_VALUE
/ MAX_VALUE
常量是原始类型。 - aioobe我能够想到的一个实际的原因是对象可以为空,而基元类型则不行。如果我无法确保函数返回一个int类型的值,那么使用包装类型是获取我期望的int值的唯一方法。自动装箱会处理其余部分。