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

Java泛型核心知识点详解

本文详细讲解Java泛型核心知识点,涵盖泛型作用、泛型类、泛型方法、泛型接口、通配符、上下限、优缺点。

一、泛型概述

泛型就是参数化类型,把数据类型当作参数传递。
作用:

  1. 在编译阶段检查类型,避免运行时类型转换异常
  2. 避免强制类型转换,代码更简洁
  3. 通用通用组件,提高代码复用性

二、泛型的好处

无泛型

Listlist=newArrayList();list.add("Java");list.add(100);// 取出必须强转Strings=(String)list.get(0);

有泛型

List<String>list=newArrayList<>();list.add("Java");// list.add(100); 编译报错,类型安全Strings=list.get(0);// 无需强转

三、泛型类

把泛型定义在上,类中方法可直接使用泛型。

1. 定义泛型类

// T:类型参数,可以是任意标识publicclassBox<T>{privateTdata;publicTgetData(){returndata;}publicvoidsetData(Tdata){this.data=data;}}

2. 使用泛型类

publicclassTest{publicstaticvoidmain(String[]args){Box<String>box=newBox<>();box.setData("泛型测试");Strings=box.getData();}}

四、泛型方法

把泛型定义在方法上,方法独立使用泛型。

publicclassGenericMethod{// 泛型方法public<T>Tshow(Tt){System.out.println(t);returnt;}}

使用:

show("Java");show(100);show(3.14);

五、泛型接口

把泛型定义在接口上。

1. 定义泛型接口

publicinterfaceMyInterface<T>{Ttest();}

2. 实现方式1:指定具体类型

publicclassTestImplimplementsMyInterface<String>{@OverridepublicStringtest(){return"指定类型";}}

3. 实现方式2:保留泛型

publicclassTestImpl2<T>implementsMyInterface<T>{@OverridepublicTtest(){returnnull;}}

六、泛型通配符

1. 通配符:?

表示任意类型

publicvoidshow(List<?>list){// 可以接收任意泛型List}

2. 上限通配符:? extends T

只允许 T 及 T 的子类

// 接收Number或Number子类publicvoidshow(List<?extendsNumber>list){}

3. 下限通配符:? super T

只允许 T 及 T 的父类

// 接收Integer或Integer父类publicvoidshow(List<?superInteger>list){}

七、泛型常见命名规范

  • T:Type(类型)
  • E:Element(集合元素)
  • K:Key(键)
  • V:Value(值)
  • N:Number(数值)

八、泛型注意事项

  1. 泛型在编译时有效,运行时会被擦除
  2. 泛型不能使用基本类型,必须使用包装类
  3. 静态方法不能使用类泛型,必须自己定义
  4. 泛型数组不能直接创建:new T[10]

九、泛型使用场景

  1. 集合类:List<T>Map<K,V>
  2. 通用工具类、通用结果返回类
http://www.rkmt.cn/news/1518762.html

相关文章:

  • 2026年山东财务管理公司哪家强?本土代理记账对比测评 - 互联百晓生
  • 电影《你不是独行侠》定档6月25日上映,试着和生活和解
  • 从社保缴纳人数看重庆小懒虫教育:一家真实运营、有稳定团队的报考咨询机构 - 行业深度观察
  • MLOps最小可行闭环:从本地训练到测试部署的实操路线图
  • 重新掌控你的浏览器:uBlock Origin终极隐私保护指南
  • 2026地板十大品牌权威排行榜:林昌地板强势登顶,谁才是你家的最佳选择? - 玖叁鹿
  • 揭秘Lumafly:如何用Avalonia构建跨平台游戏模组管理器的高效方案
  • 如何高效保护数字隐私:完整硬件指纹伪装指南
  • 云原生助力政府数字化
  • 嵌入式Flash存储:从原理到实战,解析NXP 56F80xx安全编程与调试
  • 颠覆茅台预约体验:Campus-imaotai全自动预约系统深度解析
  • ARM9核心SoC i.MX21架构解析与嵌入式开发实战
  • 终极Steam成就管理工具:3步快速解锁游戏全成就
  • DeepSeek融了500亿,但中国AI巨头们同床异梦
  • 智源大会圆桌大模型没有终局具身智能可能是中国的 AlphaGo 时刻
  • 2026免费在线抠图工具推荐|6款高效AI去背景工具使用攻略
  • Python进阶:从执行模型与对象机制理解真实Bug根源
  • 影刀RPA新手教程_JSON数据处理完全指南从API返回数据到结构化表格
  • 2026年攻克AI生成前端粗糙感难题,Qt风格带来视觉新体验
  • Fillinger:3步实现Adobe Illustrator形状内部图案自动布局
  • 2026浙江杭州叛逆管教学校十大排名!全封闭正规院校,专治孩子厌学、网瘾、不良社交:全封闭式叛逆学校哪家靠谱? - 辛云教育资讯
  • Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:生产级 Controller 实践:并发安全、资源清理与高可用设计
  • DLSS Swapper完整指南:5分钟快速免费优化游戏DLSS性能
  • 在Windows上直接运行安卓应用:APK Installer完全指南
  • 大学生创业课避坑指南:手把手教你搞定超星学习通《创业基础》章节测试(附答案解析思路)
  • Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:生产级 Controller 实践 —— 并发安全、资源清理与高可用设计
  • 2026年阿尔及利亚专线物流公司TOP5推荐 靠谱货代怎么选 - 优质推荐榜信息
  • MC68377时钟与系统保护:PLL原理、看门狗与复位诊断实战
  • 2026无锡代理记账排行榜:这几家好用又靠谱 - 速递信息
  • 黄金闲置回血!武汉正规黄金回收门店精选指南 - 讯息早知道