news 2026/4/18 5:44:33

Java 泛型 - Java 泛型通配符(上界通配符、下界通配符、无界通配符、PECS 原则)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java 泛型 - Java 泛型通配符(上界通配符、下界通配符、无界通配符、PECS 原则)

一、上界通配符

  • 上界通配符? extends T,表示 T 或 T 的任意子类型,只能读取,不能写入
List<?extendsNumber>list=newArrayList<Integer>(List.of(1,2,3));Numbernum=list.get(0);// 安全读取为 Number
// 不能写入 Integer 类型,因为无法确定具体类型,list 可能是 List<Integer>,也可能是 List<Double> 等publicvoidtest_write(List<?extendsNumber>list){list.add(newInteger(100));}
// 除了写入 nullpublicvoidtest_write(List<?extendsNumber>list){list.add(null);}

二、下界通配符

  • 下界通配符,? super T,表示 T 或 T 的任意父类型
List<?superInteger>list=newArrayList<Number>();list.add(newInteger(1));// 安全,Integer 是 Number 子类
// 只能读取为 Object,因为无法确定具体类型,list 可能是 List<Integer>,也可能是 List<Number> 等publicvoidtest_read(List<?superInteger>list){Objectobj=list.get(0);}

三、无界通配符

  • 无界通配符,?,表示任意类型,只读为 Object
// 不能写入,因为无法确定具体类型,list 可能是 List<Dog>,也可能是 List<Cat> 等// 只能读取为 Object,因为无法确定具体类型,list 可能是 List<Dog>,也可能是 List<Cat> 等voidprocess(List<?>list){for(Objectobj:list){}}

PECS 原则

  • PECS,全称 Producer Extends Consumer Super,用于指导泛型通配符的使用
  1. Producer Extends:生产者,使用上界通配符作为返回类型

  2. Consumer Super:消费者,使用下界通配符作为参数类型

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 13:14:30

变量IV值高到“爆表”,是发现宝藏还是踩中陷阱?

“这个变量的IV值居然有1.2!是不是算错了?”“营销数据里出现IV值0.8的变量,该高兴还是该怀疑?”如果你是数据分析师或建模工程师,这样的对话一定不陌生。IV值(信息价值)作为衡量变量预测能力的标尺,在金融风控中备受推崇,但当它高得“异常”时,却可能引发两种截然不同…

作者头像 李华
网站建设 2026/4/14 23:43:55

贝叶斯优化随机森林的故障诊断附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…

作者头像 李华
网站建设 2026/4/16 19:53:15

《AI应用架构师视角:AI发展怎样改变与社会责任的关系》

AI应用架构师视角&#xff1a;AI发展怎样改变与社会责任的关系 一、开场&#xff1a;当AI的“无心之过”变成架构师的“必须解答” 凌晨三点&#xff0c;我在医院急诊室的走廊里刷到一条朋友圈——是做儿科医生的老同学发的&#xff1a;“今晚接诊了一个高烧惊厥的孩子&#xf…

作者头像 李华
网站建设 2026/3/13 13:14:55

揭秘:AI应用架构师借助AI驱动市场分析引领行业变革的背后逻辑

揭秘AI应用架构师的“市场分析武器库”:用AI重构行业决策的底层逻辑 一、引言:传统市场分析的“死胡同”,AI架构师如何破局? 深夜11点,某零售企业市场部经理张丽盯着电脑屏幕上的Excel表格,揉了揉发涩的眼睛——这是她本周第3次调整下月的库存计划。上周刚因为“没预料…

作者头像 李华
网站建设 2026/4/3 8:23:34

从入门到精通:大数据环境下的数据脱敏实战指南

从入门到精通:大数据环境下的数据脱敏实战指南 关键词:数据脱敏、隐私保护、敏感数据识别、脱敏算法、合规性、大数据处理、动态脱敏 摘要:在大数据时代,用户隐私泄露事件频发,企业面临《个人信息保护法》《GDPR》等严格法规约束。本文从“为什么需要数据脱敏”出发,用“…

作者头像 李华
网站建设 2026/4/16 18:29:22

C++之继承与组合

继承与组合是C实现代码重用的两种主要方法继承是Is-a的关系&#xff0c;比如水果和梨组合是Has-a的关系&#xff0c;图书馆有图书 #include <iostream> using namespace std; class vehicles{ //交通工具 public:void load(const string& goods){cout << "…

作者头像 李华