对java中泛型的误解
我试图理解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)中
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()]);