Java泛型中的问号是什么意思

通配符概念

因为 List 是泛型类,为了 表示各种泛型 List 的父类,可以使用类型通配符,类型通配符使用问号(?)表示,将一个问号当做类型元素传递个 List,可以表示为 List<?>,意思是 元素类型未知的 List,不同于 List 其元素类型为 T。这个问号被称为通配符,它的元素类型可以匹配任何类型。

一般的,统配符不会出现在泛型类的声明上,而多用于使用泛型类或泛型方法。

java 复制代码
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

相关推荐
即将进化成人机6 小时前
springboot项目创建方式
java·spring boot·后端
教练、我想打篮球6 小时前
117 javaweb servlet+jsp 项目中修改了 数据库连接配置, 却怎么都不生效
java·servlet·jdbc·jsp
你不是我我6 小时前
【Java 开发日记】我们来说一说 Redis IO 多路复用模型
java·开发语言·redis
想七想八不如114086 小时前
408操作系统 PV专题
开发语言·算法
SadSunset6 小时前
(13)复杂查询
java·笔记·架构·mybatis
浩瀚地学6 小时前
【Java】ArrayList
java·开发语言·经验分享·笔记
阿杰同学7 小时前
Java 设计模式 面试题及答案整理,最新面试题
java·开发语言·设计模式
这样の我7 小时前
java 模拟chrome指纹 处理tls extension顺序
java·开发语言·chrome
yong99907 小时前
基于MATLAB的雷达压制干扰仿真
开发语言·matlab