本文最后更新于:星期四, 六月 18日 2020, 9:01 上午

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[ ]{};是不存在的


Java     

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

Proxy和Invocation动态代理和AOP代理 上一篇
volatile关键字 下一篇