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.
You cannot store primitive data types in a collection
so objects of type Integer are created and stored.
但是我尝试使用al.add(1)
并且它有效。怎么样? (在这种情况下,1是原始数据类型而不是对象)
答案 0 :(得分:2)
您的原始值将被装箱到适当的包装器对象(Integer,Long等)并添加到Collection中,并且此功能从java 5中添加。
如果使用旧版本(在Java 5之前),则在这种情况下会出现编译错误。
答案 1 :(得分:1)
1
已自动退出;编译器为您处理。会发生什么事情,在运行时你的添加真的是:
al.add(Integer.valueOf(1));
请注意,从Integer
删除 List
是件很难的,因为你有两个删除方法:一个删除一个元素给定索引(.remove(int)
)和删除列表中的对象(.remove(T)
)。
因此,如果您要从列表中删除对象 1
,则必须.remove(Integer.valueOf(1))
...