String[] strings = new String[5];
Object[] objects=strings;
String a=new String();
Object obj=a;
这两段代码说明的是:如果A是B的子类,那么A可以直接转换成B类型,A类数组也可以直接转换成B类数组。
List<String> list=new ArrayList<>();
List<Object> objectList=list;
但是这段代码是错误的,不同的泛型对象,就算A是B的子类,A泛型的类也不能转换成B泛型的相同的类。编译器在编译阶段就可以报错:
总结:
如果Student是Person的子类,那么Student[ ]数组是Person[ ]数组的子类,但是G不是G的子类。
另:java不支持创建泛型数组比如List[ ] lists=new ArrayList[ ]{};是不存在的