专栏名称: 码小辫
给程序员和编程爱好者分享计算机编程电子书以及相关的学习资源
今天看啥  ›  专栏  ›  码小辫

告别类型错误:Java泛型上下界,这些坑你千万别踩!

码小辫  · 公众号  ·  · 2024-09-02 17:10

文章预览

来源:juejin.cn/post/7022581523048038408 准备工作 有如下类的 继承关系 ,为下文理解做好准备 没有泛型上下界遇到了什么问题? Apple是Fruit的子类 ,那么如下代码是不会出错的 // ok Fruit apple =  new  Apple();  如果我们写如下代码,定义一个装有Fruit的List,并将装有Apple的List赋值给它,会如何呢? List  plate =  new  ArrayList (); 它会在Idea里报红线,运行会报错: java: 不兼容的类型: java.util.ArrayList 无法转换为java.util.List ,显然在集合间不存在继承引用关系 那么面对以上问题,就需要上下界登场 泛型的上界, ? extends T 使用泛型的上界, ? extends Fruit ,就能解决如上问题 List extends Fruit> plate =  new  ArrayList (); 那么?我们该如何理解上界?? 是java的通配符,在如上的例子中,上界 ?extends Fruit 代表任何继承了Fruit的子类(包含Fruit本身),该集合中装的就是 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览