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


    类型通配符

    1. 类型通配符 一般用于接受使用,不能够做添加
    2. List:表示元素类型未知的list,它的元素可以匹配任何类型
    3. 带通配符的List仅表示它是各种泛型List的父类,并不能把元素添加到其中
    4. 类型通配符上限: List :它表示的类型是MayiktParent或子类型
    5. 类型通配符下限: List :它表示的类型是MayiktParent或者其父类型

    示例代码

    1. package com.collection.Demo06;
    2. import java.util.ArrayList;
    3. import java.util.Iterator;
    4. import java.util.List;
    5. public class Test02 {
    6. public static void main(String[] args) {
    7. ArrayList arrayListString = new ArrayList<>();
    8. for (int i = 0; i < 5; i++) {
    9. arrayListString.add("i:" + i);
    10. }
    11. ArrayList arrayListInteger = new ArrayList<>();
    12. printList(arrayListString);
    13. printList(arrayListInteger);
    14. List arrayList = new ArrayList<>();
    15. // arrayList.add("fsd");//报错,不能添加
    16. }
    17. //参数List类型的泛型,明确String类型
    18. // public static void printList(List stringList){}
    19. /**
    20. * 如果不明确参数List类型的泛型是什么类型,可以使用
    21. * List 只能用于接收,可以接收所有类型的泛型类型,但不能用于添加
    22. */
    23. public static void printList(List stringList) {
    24. // stringList.add("mayilt");//报错,不能用于添加,∵类型不明确,没法添加
    25. // Object o = stringList.get(0);//不能添加,但可以get,类型是Object
    26. Iterator iterator = stringList.iterator();
    27. while (iterator.hasNext()) {
    28. System.out.println(iterator.next());
    29. }
    30. }
    31. }

    上限和下限

    MayiktParent.java 父类

    1. package com.collection.Demo06;
    2. public class MayiktParent {
    3. }

    Student.java 子类

    1. package com.collection.Demo06;
    2. public class Student extends MayiktParent{
    3. }

    Test03.java 测试

    1. package com.collection.Demo06;
    2. import java.util.ArrayList;
    3. import java.util.List;
    4. public class Test03 {
    5. public static void main(String[] args) {
    6. List mayiktParents = new ArrayList<>();
    7. List students = new ArrayList<>();
    8. List integers = new ArrayList<>();
    9. List objects = new ArrayList<>();
    10. printList1(mayiktParents);//上限
    11. printList1(students);//上限
    12. // printList1(integers);//报错,∵ integer与MayiktParent没有任何关系
    13. // printList1(objects);//报错,只能是MayiktParent与它的子类
    14. printList2(mayiktParents); //下限
    15. printList2(objects);//下限——父类
    16. // printList2(students);//报错
    17. // printList2(integers);//报错
    18. printList3(mayiktParents);
    19. printList3(students);
    20. printList3(objects);
    21. // printList3(integers);//报错
    22. }
    23. /**
    24. * 问题: List 接收所有类型,如何限制?
    25. * 解决: 类型通配符 上限 和 下限
    26. * 上限: List :它表示的类型是MayiktParent或子类型
    27. * 下限: List :它表示的类型是MayiktParent或者其父类型
    28. */
    29. //List 只能接收MayiktParent 和它的子类
    30. public static void printList1(List list) { //上限
    31. }
    32. //List 只能接收MayiktParent 和它的父类
    33. public static void printList2(Listsuper MayiktParent> list) { //下限
    34. }
    35. //如果想是使用super让可以接收mayiktParents和students
    36. public static void printList3(Listsuper Student> list) { //下限
    37. }
    38. }

    39. 下一篇文章:可变参数

    40. 相关阅读:
      Oracle自治事务示例演示
      实战:Linux下静默安装DM达梦数据库
      fonts什么文件夹可以删除吗?fonts文件夹删除了怎么恢复
      一文了解VR全景,VR全景有哪些优势?
      OpenCV自学笔记二十:图像分割和提取
      LiveMedia视频中间件支持GB35114的设备接入
      Java 热更新 Groovy 实践及踩坑指南
      第三十四章 使用 CSP 进行基于标签的开发 - Hyperevent例子
      Casper Network 构建企业级区块链生态的野望
      vue3 参数传递 props
    41. 原文地址:https://blog.csdn.net/qq_57268251/article/details/134016883
      • 最新文章
      • 攻防演习之三天拿下官网站群
        数据安全治理学习——前期安全规划和安全管理体系建设
        企业安全 | 企业内一次钓鱼演练准备过程
        内网渗透测试 | 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号