1. String[] strings = new String[5];
    2. Object[] objects=strings;
    3. String a=new String();
    4. Object obj=a;

    这两段代码说明的是:如果A是B的子类,那么A可以直接转换成B类型,A类数组也可以直接转换成B类数组。

    1. List<String> list=new ArrayList<>();
    2. List<Object> objectList=list;

    但是这段代码是错误的,不同的泛型对象,就算A是B的子类,A泛型的类也不能转换成B泛型的相同的类。编译器在编译阶段就可以报错:
    泛型类型转换的问题 - 图1

    总结:
    如果Student是Person的子类,那么Student[ ]数组是Person[ ]数组的子类,但是G不是G的子类。
    另:java不支持创建泛型数组比如List[ ] lists=new ArrayList[ ]{};是不存在的