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

Java中约定俗成的泛型通配符【T、E、K、V、?】

文章目录

  • 背景
  • 通配符
    • 1、通配符T
    • 2、通配符E
    • 3、通配符K和V
    • 4、通配符?
  • 作用
    • 1、类型安全
    • 2、消除代码强制转换
    • 3、代码复用

背景

在Java语言中,使用泛型来实现参数化的类型,在编译时对输入的参数指定一种数据类型,检查类型是否匹配,避免ClassCastexception异常发生。

在Java中通常约定俗成的通配符,主要有 【T、E、K、V、?】,下面逐个过一遍。

通配符

1、通配符T

T,即type类型,表示任意类型的参数

private class AA<T>{
	private T t;
}

// 不带泛型
AA a = new AA();
a.set(new BB());
BB b = (BB) a.get(); // 强制类型转换

// 带泛型
AA<B> a = new AA<B>();
a.set(new BB());
BB b = a.get(); // 不用专门类型转换

2、通配符E

E,即element 元素,集合中的元素类型,比如定义数组

List<E> list = new ArrayList<>();

3、通配符K和V

K,即Key 键,V,即Value值,映射的键对应的数据类型,比如定义Map

Map<K,V> map = new HashMap<>();

4、通配符?

无界通配符<?> 表示不指定类型,即可接收任意类型

public void getResult(List<?> list){
	return list.stream.anyMatch(key -> key.equal("123"));
}

上界通配符<? extends T> 类型是T或子类

public <T extends Serializable> T getResult(String key,Class<T> clas){
	Object value = map.get("name");
	return clas.cast(value);
}

下界通配符<? super T> 类型是T或父类

public <void getResult(String key,<super Serializable>){
	Object value = map.set("name",key);
}

作用

1、类型安全

减少编译的时候报错

2、消除代码强制转换

减少类型转化的操作

3、代码复用

减少重复代码,比如对外提供统一的响应返回类。

相关文章:

  • 用前端做的比较酷的网站百度集团股份有限公司
  • 网站为什么要备案登记免费发布信息
  • 深圳做企业网站的网站百度收录
  • 化妆品网站建设方案建设网站推广
  • 中华室内设计协会seo公司上海
  • 男女插孔做暖暖网站大全网站推广的10种方法
  • P1883 【模板】三分 | 函数
  • 【MATLAB定位例程】TDOA(到达时间差)的chan-tylor,三维环境,附完整代码
  • 蓝桥杯刷题笔记
  • # 利用OpenCV和Dlib实现疲劳检测:守护安全与专注
  • SMT加工贴片核心工艺解析
  • 我的二周年创作纪念日
  • 2024版idea使用Lombok时报找不到符号
  • Apache 配置负载均衡详解(含配置示例)
  • P1125 [NOIP 2008 提高组] 笨小猴
  • SQL Server常见问题的分类解析(一)
  • Hibernate里的对象不同状态和Session的核心方法
  • 2025年3月通信科技周报(3.24-3.30):AI赋能通信基础设施升级
  • vue watch和 watchEffect
  • Linux中C++ gdb调试命令
  • 【多线程】CAS机制
  • 《基于 C++ 的怪物掉落武器功能开发》
  • 19.go日志包log
  • 拍摄的婚庆视频有些DAT的视频文件打不开怎么办
  • JavaScript学习21-事件类型之键盘事件
  • 【STM32】Flash详解