java - 添加到集合中的元素应该是对象。那为什么我可以添加原始数据类型呢?

标签 java collections

import java.util.*;
       class Ball{
         public static void main(String args[])
         {
            ArrayList <Integer> al = new ArrayList<Integer>();
            al.add(new Integer(1));
            System.out.println(al);
            }   
         }

我正在阅读 Herbert Schildt 撰写的完整引用 Java 2,并且偶然发现了这个片段。 它说

The program begins by creating a collection of integers.

不能在集合中存储原始数据类型

 so objects of type Integer are created and stored.

但是我尝试使用 al.add(1) 并且它有效。如何? (在本例中,1 是原始数据类型,而不是对象)

最佳答案

您的原始值将被装箱到适当的包装对象(Integer、Long 等)并添加到 Collection 中,并且此功能是从 java 5 添加的。

如果您使用旧版本(Java 5之前),在这种情况下您将收到编译错误。

关于java - 添加到集合中的元素应该是对象。那为什么我可以添加原始数据类型呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23731961/

相关文章:

java - AtomicLongMap 与 ConcurrentHashMultiset

c# - 从集合中获取 InnerText

java - HashMap 不调用 Object.equals?

python - 了解集合的 python 对象成员资格

Mac 上的 java swing,无法激活组件的 revalidate()

java - 使用ANT根据包名动态生成JAR文件

java - Spring boot 版本更改给出错误

java - 无法解析 android Activity 中的方法 setHasOptionsMenu

java - java中动态定义集合或对象类型变量

c# - 如何优雅地解决这个考勤表问题?