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

类型通配符上限

主函数

package typeWildcardTop;import java.util.ArrayList;public class typeWildcardTopTest {/**/public static void main(String[] args) {
//        test1();test2();}/*测试showList接收ArrayList类型 ArrayList接收各种类型参数创建animals cats mincats集合 传入show输出*/public static void test1(){ArrayList<Animals> animals = new ArrayList<>();ArrayList<Cats> cats = new ArrayList<>();ArrayList<minCats> minCats = new ArrayList<>();/*showList 接收ArrayList类型!!! ArrayList接收类型参数 最后形成接收各种类型的集合*/showList(animals);showList(cats);showList(minCats);}/*what:输出ArrayList集合每一个元素ArrayList集合元素可能是任意类型params:首先他接受的ArrayList类型  ArrayList接收类型参数接收ArrayList类型!!! ArrayList接收类型参数 最后形成接收各种类型的集合careout:类型通配符列表 对象 无法填充元素 因为你不知道该对象元素是何种类型*/public static void showList(ArrayList<?> list) {//类型通配符对象 无法填充元素
//        list.add(new Cats());
//        list.add(new Animals());
//        list.add(new minCats());for (int i = 0;i<list.size();i++) {System.out.println(list.get(i));}}/*what:测试 接收ArrayList类型对象  ArrayList设置接受类型上限为Cats最后 参数接收上限为Cats的列表对象*/public static void test2(){ArrayList<Animals> animals = new ArrayList<>();ArrayList<Cats> cats = new ArrayList<>();ArrayList<minCats> minCats = new ArrayList<>();//        showListTop(animals);  //失败 因为只能接收Cats以下的列表showListTop(cats);showListTop(minCats);}/*what:设置ArrayList 接收类型的上限 凡是上限以上无法接收类型*/public static void showListTop(ArrayList<? extends Cats> list){for(int i = 0;i<list.size();i++){System.out.println(list.get(i));}}
}

Animals 父类

package typeWildcardTop;/*
what:父类 是一个类型!!!*/
public class Animals {
}

子类Cats

package typeWildcardTop;public class Cats extends Animals{
}

子类minCats

package typeWildcardTop;public class minCats extends Cats{
}
http://www.lryc.cn/news/539282.html

相关文章:

  • 嵌入式音视频开发(二)ffmpeg音视频同步
  • Mongodb数据管理
  • Django 创建表 choices的妙用:get_<field_name>_display()
  • Spring Boot 集成 Kettle
  • 自学Java-面向对象高级(final、单例类、枚举类、抽象类、接口)
  • Hutool - Cache:简单而强大的缓存实现
  • DeepSeek 通过 API 对接第三方客户端 告别“服务器繁忙”
  • Python 基础-循环
  • Java和SQL测试、性能监控中常用工具
  • SQL 注入攻击详解[基础篇]:Web 应用程序安全漏洞与防御策略
  • 【ArcGIS Pro二次开发】(87):样式_Style的用法
  • DEX-EE三指灵巧手:扩展AI与机器人研究的边界
  • 简站主题:简洁、实用、SEO友好、安全性高和后期易于维护的wordpress主题
  • 23种设计模式 - 责任链
  • Flink SQL与Doris实时数仓Join实战教程(理论+实例保姆级教程)
  • 算法——舞蹈链算法
  • 【复现DeepSeek-R1之Open R1实战】系列6:GRPO源码逐行深度解析(上)
  • 若依Flowable工作流版本监听器使用方法
  • 机器视觉--图像的运算(乘法)
  • 突破反爬困境:从服务端渲染到客户端SPA,爬虫环境的演变与新挑战(一)
  • matlab下载安装图文教程
  • 七、敏捷开发工具:持续集成与部署工具
  • 重看Spring聚焦BeanDefinition分析和构造
  • 2025年新型智慧城市整体解决方案下载:顶层规划设计,应用总体建设方案
  • 【旋转框目标检测】基于YOLO11/v8深度学习的遥感视角船只智能检测系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
  • 【物联网】电子电路基础知识
  • Linux-GlusterFS配置
  • IIS asp.net权限不足
  • centos 9 时间同步服务
  • 使用Java爬虫获取1688按图搜索商品(拍立淘API接口)