类型通配符上限

主函数

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.mzph.cn/web/70062.shtml

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

相关文章

OpenCV(1):简介、安装、入门案例、基础模块

1 OpenCV 简介 OpenCV 是一个功能强大、应用广泛的计算机视觉库&#xff0c;它为开发人员提供了丰富的工具和算法&#xff0c;可以帮助他们快速构建各种视觉应用。随着计算机视觉技术的不断发展&#xff0c;OpenCV 也将会继续发挥重要的作用。OpenCV 提供了大量的计算机视觉算法…

FTP自动上传/vue打包自动上传

ftp自动上传 在我们平时开发项目时&#xff0c;需要将本地代码编译后上传到服务器&#xff0c;我们可以借助Node.js库中的ssh2来实现自动上传 首先我们先来说下ssh2的安装和使用 安装ssh2 npm install ssh2创建ssh2实例 const { Client } require(ssh2);连接服务器 const c…

SQL复习

SQL复习 MySQL SQL介绍 SQL SQL的全拼是什么&#xff1f; SQL全拼&#xff1a;Structured Query Language&#xff0c;也叫结构化查询语言。 SQL92和SQL99有什么区别呢&#xff1f; SQL92和SQL99分别代表了92年和99年颁布的SQL标准。 在 SQL92 中采用&#xff08;&#xff…

nlp|微调大语言模型初探索(1),LLaMA-Factory

前言 微调模型通常比从零开始训练一个模型的技术要求低。公司不需要拥有大量的深度学习专家&#xff0c;利用现有的开源工具和库&#xff08;如Hugging Face的Transformers等&#xff09;&#xff0c;中小型公司可以轻松地使用和微调大型模型&#xff0c;从而快速实现AI能力的集…

软件定义汽车时代的功能安全和信息安全

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 简单&#xff0c;单纯&#xff0c;喜欢独处&#xff0c;独来独往&#xff0c;不易合同频过着接地气的生活…

内容中台驱动企业数字化内容管理高效协同架构

内容概要 在数字化转型加速的背景下&#xff0c;企业对内容管理的需求从单一存储向全链路协同演进。内容中台作为核心支撑架构&#xff0c;通过统一的内容资源池与智能化管理工具&#xff0c;重塑了内容生产、存储、分发及迭代的流程。其核心价值在于打破部门壁垒&#xff0c;…

【探商宝】:大数据与AI赋能,助力中小企业精准拓客引

引言&#xff1a;在数据洪流中&#xff0c;如何精准锁定商机&#xff1f; 在竞争激烈的商业环境中&#xff0c;中小企业如何从海量信息中快速筛选出高价值客户&#xff1f;如何避免无效沟通&#xff0c;精准触达目标企业&#xff1f; 探商宝——一款基于大数据与AI技术的企业信…

springboot接入ShardingJDBC

ShardingJDBC 是 Apache ShardingSphere 的一个子项目&#xff0c;它是一个开源的分库分表中间件&#xff0c;提供了透明化的数据分片、分布式事务和数据库治理等功能。ShardingJDBC 以 JDBC Driver 的形式提供&#xff0c;支持任何基于 JDBC 的 ORM 框架、持久层框架和数据库连…

Dify平台搭建面试机器人

无代码搭建面试机器人 什么是Dify 什么是Dify Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务&#xff08;Backend as Service&#xff09;和 LLMOps 的理念&#xff0c;使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员&#xff0c;也能…

Django创建一个非前后端分离平台

1.pub_blog前端创立 1.blog/pub路由 注意两个路由的区别 2.完善页面 用表单实现 3.加载wangeditor的几个文件 4.配置样式 5.配置js代码&#xff0c;单独放在js文件夹中&#xff0c;js文件夹pub_blog onload事件&#xff0c;加载完成后会再加载 5.提交按钮

什么情况下索引会失效

一、索引创建的原则 1、针对数据量较大&#xff0c;且查询比较频繁的表建立索引。 单表超过10万数据&#xff0c;即可增加索引 2、使用经常作为查询条件&#xff08;where&#xff09;、排序&#xff08;order by&#xff09;、分组&#xff08;group by&#xff09;操作的字…

内容中台重构企业内容管理流程驱动智能协作升级

内容概要 内容中台作为企业数字化转型的核心基础设施&#xff0c;通过技术架构革新与功能模块整合&#xff0c;重构了传统内容管理流程的底层逻辑。其核心价值在于构建动态化、智能化的内容生产与流转体系&#xff0c;将分散的创作、存储、审核及分发环节纳入统一平台管理。基…

用deepseek学大模型04-模型可视化与数据可视化

deepseek.com: pytorch可视化工具 生成神经网络图 在 PyTorch 中&#xff0c;可视化神经网络结构的常用工具和方法有以下几种&#xff0c;以下将详细介绍它们的用法&#xff1a; 1. TensorBoard (PyTorch 官方集成) PyTorch 通过 torch.utils.tensorboard 支持 TensorBoard&a…

JavaScript设计模式 -- 外观模式

在实际开发中&#xff0c;往往会遇到多个子系统协同工作时&#xff0c;直接操作各个子系统不仅接口繁琐&#xff0c;还容易导致客户端与内部实现紧密耦合。**外观模式&#xff08;Facade Pattern&#xff09;**通过为多个子系统提供一个统一的高层接口&#xff0c;将复杂性隐藏…

【性能测试】如何理解“10个线程且10次循环“的请求和“100线程且1次循环“的请求

在性能测试中&#xff0c;我们常常会见到不同的并发配置&#xff1a;比如“10个线程且10次循环”与“100线程且1次循环”。乍一看&#xff0c;这两个设置的总请求数都是100次&#xff0c;但它们对系统的压力和测试场景却截然不同。了解其中的区别&#xff0c;能帮助你更精准地模…

Spring Boot 实战:轻松实现文件上传与下载功能

目录 一、引言 二、Spring Boot 文件上传基础 &#xff08;一&#xff09;依赖引入 &#xff08;二&#xff09;配置文件设置 &#xff08;三&#xff09;文件上传接口编写 &#xff08;一&#xff09;文件类型限制 &#xff08;二&#xff09;文件大小验证 &#xff0…

【Golang】GC探秘/写屏障是什么?

之前写了 一篇【Golang】内存管理 &#xff0c;有了很多的阅读量&#xff0c;那么我就接着分享一下Golang的GC相关的学习。 由于Golang的GC机制一直在持续迭代&#xff0c;本文叙述的主要是Go1.9版本及以后的GC机制&#xff0c;该版本中Golang引入了 混合写屏障大幅度地优化了S…

DeepSeek教unity------MessagePack-03

数据契约兼容性 你可以使用 [DataContract] 注解代替 [MessagePackObject]。如果类型用 DataContract 进行注解&#xff0c;可以使用 [DataMember] 注解代替 [Key]&#xff0c;并使用 [IgnoreDataMember] 代替 [IgnoreMember]。 然后&#xff0c;[DataMember(Order int)] 的…

【对比】Pandas 和 Polars 的区别

Pandas vs Polars 对比表 特性PandasPolars开发语言Python&#xff08;Cython 实现核心部分&#xff09;Rust&#xff08;高性能系统编程语言&#xff09;性能较慢&#xff0c;尤其在大数据集上&#xff08;内存占用高&#xff0c;计算效率低&#xff09;极快&#xff0c;利用…

百度千帆平台对接DeepSeek官方文档

目录 第一步&#xff1a;注册账号&#xff0c;开通千帆服务 第二步&#xff1a;创建应用&#xff0c;获取调用秘钥 第三步&#xff1a;调用模型&#xff0c;开启AI对话 方式一&#xff1a;通过API直接调用 方式二&#xff1a;使用SDK快速调用 方式三&#xff1a;在千帆大模…