码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Java学习——泛型通配符


    Java泛型的通配符?(问号)是一种特殊的类型参数,用于表示未知的类型。通配符可以在使用泛型类型时提高代码的灵活性,使得一个泛型容器能够引用多种不同类型的泛型对象。主要有三种类型的通配符使用场景:无界通配符、有界通配符(上界和下界)。

    1. 无界通配符(?)

    无界通配符?表示任意类型,它的主要用途是在读取或操作集合时,表示你不关心集合中元素的具体类型。

    示例
    1. public void printList(List list) {
    2. for (Object item : list) {
    3. System.out.println(item);
    4. }
    5. }

    这里的List表示一个未知类型元素的列表,printList方法可以接受任何类型的List对象。

    2. 有界通配符

    有界通配符限制了未知类型的范围,包括上界通配符(? extends Type)和下界通配符(? super Type)。

    上界通配符(? extends Type)

    上界通配符? extends Type表示类型的上限,它意味着任何继承自Type的类型都可以被接受。

    1. public void printNumbers(List list) {
    2. for (Number num : list) {
    3. System.out.println(num);
    4. }
    5. }

    这里的List可以接受List、List等任何Number子类的列表。

    下界通配符(? super Type)

    下界通配符? super Type表示类型的下限,它允许列表引用Type类型或任何Type的父类型。

    1. public void addNumbers(Listsuper Integer> list) {
    2. list.add(10); // 可以添加Integer或其子类的实例
    3. }

    这里的List可以是List、List或List等。

    通配符的使用原则

    • 如果你需要从集合中读取类型T的数据,并且不能写入,可以使用? extends T(生产者)。
    • 如果你需要向集合中写入类型T的数据,并且不需要读取,可以使用? super T(消费者)。
    • 如果既不需要读取也不需要写入,可以使用无界通配符?。
  • 相关阅读:
    golang 并发--goroutine(四)
    十二、消息服务(3)
    What is an HTTP Flood DDoS attack?
    构建网络下载器:Wt库指南让您轻松获取豆瓣网的美图
    小易的考试成绩(0 -1背包问题)
    Linux下GDB调试程序
    第八讲 项目演示和项目源码。
    腾讯三季度财报解读:AI大模型成下个十年的新支点?
    Go 复合数据类型之结构体与自定义类型
    按用户导出数据到asm磁盘组,并复制到另一个集群的asm
  • 原文地址:https://blog.csdn.net/bairui6666/article/details/136282751
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号