Java泛型中的问号是什么意思
通配符概念
因为 List 是泛型类,为了 表示各种泛型 List 的父类,可以使用类型通配符,类型通配符使用问号(?)表示,将一个问号当做类型元素传递个 List,可以表示为 List<?>,意思是 元素类型未知的 List,不同于 List 其元素类型为 T。这个问号被称为通配符,它的元素类型可以匹配任何类型。
一般的,统配符不会出现在泛型类的声明上,而多用于使用泛型类或泛型方法。
public class GenericTest {public static void main(String[] args) {List<String> name = new ArrayList<String>();List<Integer> age = new ArrayList<Integer>();List<Number> number = new ArrayList<Number>();name.add("icon");age.add(18);number.add(314);getData(name);getData(age);getData(number); }// 在此处使用通配符,则可以传入各种类型的 List 泛型,public static void getData(List<?> data) {System.out.println("Test date :" + data.get(0));}
}
打印输出为
Test data :icon
Test data :18
Test data :314
通配符的出现,允许类型参数变化。
参考文章:https://blog.51cto.com/u_16099228/6507641
相关文章:
Java泛型中的问号是什么意思
通配符概念 因为 List 是泛型类,为了 表示各种泛型 List 的父类,可以使用类型通配符,类型通配符使用问号(?)表示,将一个问号当做类型元素传递个 List,可以表示为 List<?>,意思是 元素类型未知的 List…...
粤嵌实训医疗项目day02(Vue + SpringBoot)
目录 一、创建vue项目并运行 二、vue-cli中的路由使用 三、element-ui框架、实现页面布局以及vue-路由 四、前端登录页面 五、user登录后端接口完善【后端】 六、user登录前端-请求工具-请求发起【前端】 七、请求的跨域-访问策略 八、完善项目的页面布局、导航菜单以及…...
又是一年1024程序员日
程序员节是每年的10月24日,这是一个特殊的节日,旨在庆祝和表彰程序员们对科技和社会的贡献。作为技术领域的从业者,程序员们在现代社会中扮演着重要的角色,他们致力于编写、测试和维护软件代码,为我们的生活带来了无数…...
acme.sh签发和部署ZeroSSL泛域名证书
大家好,我叫徐锦桐,个人博客地址为www.xujintong.com。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。 介绍 acme.sh 是个开源的shell证书生成脚本,他可以自动生成Let’s Encrypt 的证书…...
Calibre拾遗:FDI (Foreign Database Interface)系统简介
Calibre是强大的GDS处理工具,包括查看,验证,分析等操作,操作由浅入深,除过手动编辑GDS的不是很灵活外,其他各种命令和操作策略,都是远(遥)远(遥)走…...
记一次渗透测试事件
一、漏洞发现 拿到登录的接口,丢到sqlmap里面跑一把,发现延时注入 进一步查询,发现是sa权限,直接os-shell whomai查询发现是管理员权限 os-shell执行命令太慢了,直接进行nc 反弹 执行base64 加密后的powershell命令&…...
AIGC笔记--基于DDPM实现图片生成
目录 1--扩散模型 2--训练过程 3--损失函数 4--生成过程 5--参考 1--扩散模型 完整代码:ljf69/DDPM 扩散模型包含两个过程,前向扩散过程和反向生成过程。 前向扩散过程对一张图像逐渐添加高斯噪声,直至图像变为随机噪声。 反向生成过程…...
三十七、【进阶】SQL的explain
1、explain 2、基础使用 在使用explain关键字时,只需要在所执行语句前加上explain即可 mysql> explain select * from stu where id3; ---------------------------------------------------------------------------------------------------------- | id | s…...
【Python】取火柴小游戏(巴什博弈)
火柴游戏:Python编程示例 当我们想要玩一个简单而有趣的游戏,同时又想锻炼自己的编程技能时,一个经典的选择就是火柴游戏。这个游戏的规则很简单:有一堆火柴,每次可以拿走1到6根,两名玩家轮流取火柴&#…...
030-第三代软件开发-密码输入框
第三代软件开发-密码输入框 文章目录 第三代软件开发-密码输入框项目介绍密码输入框总结一下 关键字: Qt、 Qml、 echoMode、 TextInput、 Image 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QML(Qt Meta-Object Language…...
mysql读取文件
环境地址:phpMyAdmin LOAD DATA INFILE 任意文件读取漏洞 | VULNSPY 参考文章: mysql任意文件读取漏洞学习_BerL1n的博客-CSDN博客 从一道ctf题学习mysql任意文件读取漏洞 - 安全客,安全资讯平台 MYSQL 任意文件读取 小组CTF出题感想 - …...
CentOS(5)——rpm包和源码包区别
目录 一、简介 二、区别 ①包名称 ②概念 ③优缺点 ④安装位置的区别 ⑤安装位置不同带来的影响 ⑥卸载方式的不同 一、简介 最近在公司内网离线升级Git时,遇见两个概念,分别是使用rpm包安装git,另一个这是编译源码包安装git&#x…...
Golang 实现对配置文件加密
引言 在实际的应用中,配置文件通常包含了一些敏感的信息,如数据库密码、API密钥等。为了保护这些敏感信息不被恶意获取,我们可以对配置文件进行加密。本文将介绍如何使用Go语言实现对配置文件的加密。 场景 在这个场景中,我们将…...
MYSQL数字函数详解和实战(数字函数大全,内含示例)
MySQL提供了许多数字函数,用于对数字进行各种计算和处理。以下是一些常用的MySQL数字函数。 内容有点多,建议收藏以备后续用到查阅参考。 目录 一、SIGN 取数字的符号 二、ABS 取绝对值 三、COS 取余弦值 四、ACOS 取反余弦值 五、SIN 取正弦值 六…...
Linux系列讲解 —— VIM配置与美化
目录 1. Vim基本配置1.1 配置文件1.2 基本配置 2. 插件管理器Vundle2.1 下载Vundle2.2 在vimrc中添加Vundle的配置 3. Vundle的使用3.1 安装插件3.2 卸载插件 1. Vim基本配置 1.1 配置文件 vim的配置文件有两处,请根据实际情况选择修改哪个。 (1) 全局配置文件&am…...
FreeSWITCH 使用指北(2)-多段音频顺序播放的设置
文章目录 1. 多段音频顺序播放的设置 1. 多段音频顺序播放的设置 在 FreeSWITCH 中涉及到放音的 APP 有不少,比较典型的是播放录音文件的 playback 和 play_and_detect_speech 。这两个 APP 播放录音的功能都依赖于 switch_ivr_play_say.c#switch_ivr_play_file() …...
使用python爬虫语言调用有道翻译实现英中互译(2023实现)
使用python爬虫语言调用有道翻译实现英中互译(2023实现) 作者: 安静到无声 作者简介:人工智能和硬件设计博士生、CSDN与阿里云开发者博客专家,多项比赛获奖者,发表SCI论文多篇。 Thanks♪(・ω・)ノ 如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关…...
2024王道考研计算机组成原理——指令系统
零、本章概要 指令寻址:解决的是PC"1"的问题 数据寻址:使用寄存器/内存/结合 基址寻址:用于多道程序的并发执行 直接寻址:call 0x12345678 变址寻址:esi edi用于循环,因为使用直接寻址需要一堆…...
vscode中如何将cmd设置为默认终端
vscode中如何将cmd设置为默认终端?下面本篇文章给大家介绍一下vscode中设置默认终端为cmdPowerShelWSL等的方法,希望对需要的朋友有所协助! 一、快捷键(CtrlShiftP打开命令面板,输入select选择“SelectDefaultProfil …...
Unity UGUI 循环滑动列表实现思路及简单代码实现
前言: 自己之前其实比着书上实现过一个循环滑动列表,并且商业化到了项目里,上线后也在用。可后来怎么也想不起来细节,看着之前的代码也看不很懂。这次复习一下,希望真能理解它的本质,也记录一下࿰…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
