1. 数组与泛型不能很好的结合,通常你不能去实例化一个带有参数化类型的数组,也不能去创建一个泛型数组<br />
    1. Peel<String> []peelss =new Peel<String>[2];//错误
    2. T [] array=new T[3];//错误
    1. 我们后面也可不去指定类型,但这样虽然可以创建数组但我们不能进行添加操作,或只能添加null,但这样的数组有和意义呢?
    1. public class ArrayOfGenerics {
    2. public static void main(String[] args) {
    3. Peel<String> []peels =new Peel[2];
    4. System.out.println(peels[0]);
    5. System.out.println(peels.length);
    6. peels[0]=null;
    7. peels[1]="ssss";//错误,不能添加
    8. }
    9. }

    参数化数组本身类型

    1. import java.util.Arrays;
    2. class ClassParameter<T>{
    3. public T[] f(T[] rag){
    4. return rag;
    5. }
    6. }
    7. public class ParameterizedArrayType {
    8. public static void main(String[] args) {
    9. Integer[]item={1,2,3};
    10. Integer[] f = new ClassParameter<Integer>().f(item);
    11. System.out.println(Arrays.toString(f));
    12. }
    13. }

    非泛型数组和泛型数组的转化

    1. public class ArrayOfGenerics {
    2. public static void main(String[] args) {
    3. List<String>[] ls;//创建了一个泛型数组的引用
    4. List[] la=new List[10];//
    5. ls=(List<String>[])la;//前非泛型数组转化为泛型数组
    6. ls[0]=new ArrayList<String>();
    7. System.out.println(Arrays.toString(ls));
    8. //ls[1]=new ArrayList<Integer>();//不能添加String之外的类型
    9. Object [] objects=ls;//变为Object类型数组
    10. objects[1]=new ArrayList<Integer>();
    11. System.out.println(Arrays.toString(ls));
    12. List<BerylliumSphere> [] lists=(List<BerylliumSphere>[]) new List[10];
    13. for (int i=0;i<3;i++){
    14. lists[i]=new ArrayList<BerylliumSphere>();
    15. }
    16. System.out.println(Arrays.toString(lists));
    17. }
    18. }