泛型类型转换的问题

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<Student>不是G<Person>的子类。
另:java不支持创建泛型数组比如List<String>[ ] lists=new ArrayList<String>[ ]{};是不存在的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,834评论 18 399
  • 5继承 5.1 类、超类和子类 重用部分代码,并保留所有域。“is-a”关系,用extends表示。 已存在的类被...
    我快要上天啦阅读 864评论 1 3
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,727评论 0 11
  • 2014年的苹果全球开发者大会(WWDC),当Craig Federighi向全世界宣布“We have new ...
    yeshenlong520阅读 2,338评论 0 9
  • 大学老师在很多人眼中是一份光鲜的职业,收入不低,假期不少而且还受到学生的尊敬。但是有一个人为了更好的提高自己,打算...
    吴丽波阅读 246评论 2 0