泛型中extends和super的区别

news/2024/11/13 18:43:18/文章来源:https://www.cnblogs.com/2324hh/p/18539701

泛型中的 ​​extends​​​ 和 ​​super​​ 关键字用于设置类型参数的上下界,控制可以传递给泛型类型的参数类型。它们的区别在于限制的方向和用途:

1.extends:

  • 上界限制: 使用 ​​extends​​ 关键字定义了一个类型参数的上界,意味着传入的类型必须是指定类型或其子类型。
  • 读取操作: 当泛型参数有上界限制时,允许进行读取(get)操作,因为可以确保所有对象至少有指定类型的方法和属性。
  • 写入限制: 由于Java的类型擦除和安全性考虑,如果有上界限制,直接添加对象到集合可能会受到限制(特别是当使用非具体类型如 ​​? extends T​​ 时)。
  • 示例: ​​List<? extends Number>​​ 可以接受 ​​List<Integer>​​ 或 ​​List<Double>​​ 等,但你不能直接向这样的列表中添加元素,除了 ​​null​​,因为编译器无法确定确切的类型。

2.super:

  • 下界限制: 使用 ​​super​​ 关键字定义了一个类型参数的下界,意味着传入的类型必须是指定类型或其父类型。
  • 写入操作: 允许写入(put)操作,因为你总是可以向上转型为基类,所以可以安全地添加基类及其子类的实例。
  • 读取限制: 读取时可能需要类型转换,因为集合中可能包含

     

    多种类型,所有只能通过基类引用访问。
  • 示例: ​​List<? super Number>​​​ 可以接受 ​​List<Number>​​​、​​List<Object>​​​ 或任何Number的父类的List,你可以向这样的列表中添加 ​​Number​​ 或其任何子类的实例。

 

总结来说,​​extends​​ 通常用于确保可以安全地使用对象的特性(即读取),而 ​​super​​ 用于确保可以安全地插入对象(即写入)。在实际应用中,根据你需要执行的操作(读或写)来决定使用哪一个。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/831793.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arthas进行服务器资源监控

https://arthas.aliyun.com/doc/ 官方指导文档 1、arthas下载 wget https://arthas.aliyun.com/arthas-boot.jar2、是jar包,可直接用java启动 java -jar arthas-boot.jar 3、查看所有进程信息 4、查看某个进程信息 thread PID

变更管理的艺术:CMDB变更管理应用全解析

在信息技术快速发展和企业数字化转型的背景下,变更管理成为了确保业务连续性和系统稳定性的关键环节。CMDB作为变更管理的核心工具,能够提供全面的资产和配置视图,还支持变更管理流程的各个方面,从而提高变更的成功率。 一、什么是变更管理 变更管理是指对IT环境中的配置项…

地球空间网格编码规则

中国国家标准提出《地球空间网格编码规则》(GB/T 40087-2021)是2021年4月30日实施的一项中华人民共和国国家标准 外文名称:Geospatial grid encoding rule 规定了地球空间网格剖分要求和编码方法。该标准适用于作为空间单元与空间信息组织的地球空间网格剖分和代码标识。 编…

海柔仿真系统存储实践:混合云架构下实现高可用与极简运维

海柔创新是一家专注于箱式仓储机器人系统的研发和设计的科技公司,其仿真平台通过数字模拟技术,再现实际仓库环境和设备,利用导入的地图、订单、库存及策略配置等数据来验证和优化仓储解决方案,确保设计方案的效率和合理性。 最初,海柔的仿真平台在单机环境中运行,但随着数…

ENVI55扩展工具: MODIS Gap-Filled 数据读取工具

1 工具介绍 工具支持 ENVI 5.5 及以上版本。 大部分 MODIS 产品数据均可使用 MCTK 工具打开和处理。但是最近在使用 MODIS Gap-Filled 数据时,发现 MCTK 工具并不支持,会弹出如下提示。 MODIS Gap-Filled 数据通常为年合成产品,例如 MOD17A3HGF 为年合成植被净初级生产力和…

如何打造高效团队文化:项目管理工具必不可少

在当今的职场环境中,“高效团队文化”已成为一个热门话题。高效的团队不仅能快速适应项目需求的变化,还能通过顺畅的沟通和高效的执行来确保高质量的成果。而一个成功的团队文化通常离不开三个关键要素:合适的管理工具、有效的沟通机制、以及强大的执行力。 建立高效团队文化…

深圳电子MES制造执行系统选型特点

电子mes系统在选型时,需要考虑多个特点以确保系统能够满足企业的实际需求。针对广州地区的MES系统选型,以下是一些关键特点:深圳mes系统数据采集与整合能力:MES系统应能够整合多种数据采集渠道(如RFID、条码设备、PLC、Sensor等),确保现场数据的实时、准确、全面采集。良…

QRust(三)编程框架

把Rust作为动态库或静态库链接到Qt环境中,本就是一件复杂的工作,在此基础上还要引入QRust更是难上加难,因此在这一章我将手把手的引导你向前迈进,并跨过我曾经遇到的坑。 编程环境 Qt环境:Qt6,没错不支持Qt5。因为我发现struct的类型推导在Qt5环境下有错误。 Rust环境:理…

ARL356-ASEMI车用整流二极管ARL356

ARL356-ASEMI车用整流二极管ARL356编辑:ll ARL356-ASEMI车用整流二极管ARL356 型号:ARL356 品牌:ASEMI 封装:BUTTON 特性:车用整流二极管 正向电流:35A 反向耐压:600V 恢复时间:ns 引脚数量:2 芯片个数:2 芯片尺寸:MIL 浪涌电流:500A 漏电流:10ua 工作温度:-65℃…

信息收集(下)

IP端口信息收集4.1 IP信息收集4.1.1 IP反查域名http://stool.chinaz.com/samehttp://tools.ipip.net/ipdomain.php如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服务器上面可能运行多个虚拟主机。这些虚拟主机有不同的域名,但通常共用一个IP地址…

web(xss漏洞作业)

web安全作业(xss漏洞)需要掌握的知识XSS漏洞(原理、分类、危害、常用的payload)XSS平台的搭建与使用理论作业 1.xss 漏洞原理? 2.XSS的类型? 3.反射型XSS和存储型XSS的区别? 4.XSS的攻击过程? 5.XSS常用的payload构造方法? 1.原理:攻击者在有漏洞的前端页面嵌入恶意代…