当我使用泛型实现一个包含原始数组的集合时,Java中实际存储了什么?使用泛型定义集合意味着我只能存储一个对象,如果我做
如果我定义了
ArrayList<Integer>
,我可以添加一个int
,但这会自动装箱成Integer
。如果我定义了
ArrayList<int[]>
,这是完全合法的,因为数组是对象。然而,我不确定我最终在集合中存储的是Integer[]
,因为编译器执行一些转换并将自动装箱添加到数组中,或者我可以存储int[]
,并且集合将原始数组本身存储为对象。