数组与泛型不能很好的结合,通常你不能去实例化一个带有参数化类型的数组,也不能去创建一个泛型数组<br />
Peel<String> []peelss =new Peel<String>[2];//错误T [] array=new T[3];//错误
我们后面也可不去指定类型,但这样虽然可以创建数组但我们不能进行添加操作,或只能添加null,但这样的数组有和意义呢?
public class ArrayOfGenerics {public static void main(String[] args) {Peel<String> []peels =new Peel[2];System.out.println(peels[0]);System.out.println(peels.length);peels[0]=null;peels[1]="ssss";//错误,不能添加}}
参数化数组本身类型
import java.util.Arrays;class ClassParameter<T>{public T[] f(T[] rag){return rag;}}public class ParameterizedArrayType {public static void main(String[] args) {Integer[]item={1,2,3};Integer[] f = new ClassParameter<Integer>().f(item);System.out.println(Arrays.toString(f));}}
非泛型数组和泛型数组的转化
public class ArrayOfGenerics {public static void main(String[] args) {List<String>[] ls;//创建了一个泛型数组的引用List[] la=new List[10];//ls=(List<String>[])la;//前非泛型数组转化为泛型数组ls[0]=new ArrayList<String>();System.out.println(Arrays.toString(ls));//ls[1]=new ArrayList<Integer>();//不能添加String之外的类型Object [] objects=ls;//变为Object类型数组objects[1]=new ArrayList<Integer>();System.out.println(Arrays.toString(ls));List<BerylliumSphere> [] lists=(List<BerylliumSphere>[]) new List[10];for (int i=0;i<3;i++){lists[i]=new ArrayList<BerylliumSphere>();}System.out.println(Arrays.toString(lists));}}
