当前位置: 首页 > news >正文

泛型的PECS原则

文章目录

  • 泛型的PECS原则
    • Producer extends
    • Consumer supper
    • 示例

泛型的PECS原则

PECS(Producer extends Consumer supper)原则是用来帮助我们判断何时使用 ?extends T, 何时使用 ?super T的。

Producer extends

当这个泛型类是生产者,生成东西给我们读取的时候,我们使用 ? extends T。因为这样生成的东西,也就是我们读取的东西都是T的子类,我们可以很方便地使用T类型地变量接收而不会出错。

Consumer supper

当这个泛型类是消费者,也就是我们要向这个类写入数据的时候,我们使用 ?supper T,因为这样我们可以控制写入的数据永远都是T的父类,我们只要写入的数据都是T类型也就不会出错。

示例

public static <T> copyList(List<? supper Number> target, List<? extends Number> source){for(int i=0;i<source.size();i++){target.add(source.get(i));}
}

上面的示例就是将source列表的值全部复制到target列表中,source是生产者,target是消费者。


文章转载自:

http://Z19MD7JG.cgtfL.cn
http://Uj4vWoZr.cgtfL.cn
http://1W54bpDI.cgtfL.cn
http://G82beo7u.cgtfL.cn
http://mc7Xorvo.cgtfL.cn
http://vNfr6TwM.cgtfL.cn
http://9h9583qY.cgtfL.cn
http://89PLCuqT.cgtfL.cn
http://Do55zXp1.cgtfL.cn
http://4yLCwgPP.cgtfL.cn
http://lbpEFUyk.cgtfL.cn
http://QkibZkrg.cgtfL.cn
http://71H6ZZSk.cgtfL.cn
http://uo6UosMB.cgtfL.cn
http://cU7Y09M1.cgtfL.cn
http://qLYdglqP.cgtfL.cn
http://J06iVkDv.cgtfL.cn
http://ektEQ8V0.cgtfL.cn
http://nHoBWGuF.cgtfL.cn
http://5uvJJPDK.cgtfL.cn
http://6mCJtIFY.cgtfL.cn
http://tcyCK8QX.cgtfL.cn
http://pff68zhx.cgtfL.cn
http://yQ3Zd5W7.cgtfL.cn
http://ZH7bYUp4.cgtfL.cn
http://Q5b5NyVt.cgtfL.cn
http://KkGLewMe.cgtfL.cn
http://je8qXRfk.cgtfL.cn
http://1hmEn3Hd.cgtfL.cn
http://Q7uNTdc2.cgtfL.cn
http://www.dtcms.com/a/245455.html

相关文章:

  • Docker 安装 Oracle 12C
  • React中修改 state 时必须返回一个新对象 (immutable update)
  • 基于数据库实现配置管理和定时任务启停
  • 常见Modbus协议面试问题
  • 强化微调技术与GRPO算法(1):简介
  • 农田实时监测与管理系统开发
  • map()函数
  • IteraJudge-增量多维评判框架解读
  • 第十节 高频代码题-类型推断题
  • NXP S32K146 T-Box 携手 SDNAND(贴片式 TF 卡):驱动汽车智能革新的黄金组合
  • 接口测试不再难:智能体自动生成 Postman 集合
  • 计算机系统(6)
  • 翻译核心词汇
  • 软考-计算机硬件组成
  • 微信小程序渗透测试指北(附案例)
  • 小结:Spring AOP 切点表达式
  • python-生日悖论
  • OpenCV——图像金字塔
  • std::make_shared简化智能指针 `std::shared_ptr` 的创建过程,并提高性能(减少内存分配次数,提高缓存命中率)
  • 第30节 Node.js C/C++ 插件
  • ARXML可视化转换工具使用说明
  • C#实现无声视频的配音与字幕生成器
  • 接到数据分析任务后,怎么判断是分类还是回归?什么时候你该考虑换模型?
  • XML 注入与修复
  • Docker入门篇--从安装到使用
  • 回调接口模式
  • Docker|简单入门
  • Android自动化AirScript
  • Appium+python自动化(二十)-- Monkey日志
  • ATM 模拟器 Golang 程序--示例