对java中泛型的误解

对java中泛型的误解,java,arrays,list,generics,Java,Arrays,List,Generics,我试图理解Java中的泛型 private List<Own> l = new ArrayList<Own>(); private List l=new ArrayList(); 我有以下错误: no instance of Typed array variable T exist so that List<Own> conform to T[] 不存在类型化数组变量T的实例,因此列表符合T[] 当我将它传递到一个方法(readTypedArray)中

我试图理解Java中的泛型

private List<Own> l = new ArrayList<Own>();
private List l=new ArrayList();
我有以下错误:

no instance of Typed array variable T exist so that List<Own> conform to T[]
不存在类型化数组变量T的实例,因此列表符合T[]
当我将它传递到一个方法(readTypedArray)中,该方法需要T[]

private List<Own> list = new ArrayList<Own>();

private OwnParceable(Parcel in) {
    in.readTypedArray(list, CategoriesParceable.CREATOR);
}
private List=new ArrayList();
私人拥有的可包裹(包裹位于){
in.readTypedArray(列表,categoriesparcapable.CREATOR);
}

这与泛型无关-
列表和数组只是两个不同的东西。如果方法需要数组,则需要向其传递数组,而不是列表:

Own[] arr = new Own[10]; // Or some size that makes sense...
in.readTypedArray(arr, CategoriesParceable.CREATOR);

.readTypedArray()
中的方法
需要一个数组
T[]
,但是您传递了一个
列表,可以创建一个填充指定
列表内容的数组。要实现这一点,您可以调用列表引用的方法
toArray()
,例如:

Integer[] array = list.toArray(new Integer[list.size()]);

列表
不是
[]
Integer[] array = list.toArray(new Integer[list.size()]);