当前位置: 首页 > 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.jsqmd.com/news/1006957/

相关文章:

  • 2026山东菏泽十大正规叛逆管教学校排名出炉!央视认证合规机构,专治孩子网瘾厌学 - 辛云教育资讯
  • 极致轻量内存优化:Mem Reduct专业内存管理实战指南
  • 2026年山东财务管理公司哪家强?本土代理记账对比测评 - 互联百晓生
  • 电影《你不是独行侠》定档6月25日上映,试着和生活和解
  • AI动态简报之算力基建篇(2026.06.13)
  • 保定财税管理公司哪家强?2026年代理记账服务对比测评 - 互联百晓生
  • 如何用NSC_BUILDER高效管理你的Switch游戏文件:终极指南
  • MLOps最小可行闭环:从本地训练到测试部署的实操路线图
  • 2026年山东财务管理公司哪家强?本土财务机构对比测评 - 互联百晓生
  • 小红书内容采集神器:XHS-Downloader 5分钟快速上手指南
  • 嵌入式DSP向量加速:LSP APU对齐异常与核心指令详解
  • 终极指南:如何用E-Viewer打造完美的Windows漫画阅读体验
  • SleeperX:解决Mac电源管理痛点的智能睡眠控制系统
  • 高效提升macOS窗口管理效率:AutoRaise鼠标悬停自动聚焦工具全面指南
  • Kinetis AFE驱动配置实战:从参数解析到多通道数据采集避坑指南
  • 中文新闻14分类实战包:BERT微调+TextCNN对比+Flask在线预测服务
  • 如何高效保护数字隐私:完整硬件指纹伪装指南
  • 揭秘Lumafly:如何用Avalonia构建跨平台游戏模组管理器的高效方案
  • Phi-2:2.7B轻量模型如何实现工业级确定性推理
  • 2026地板十大品牌权威排行榜:林昌地板强势登顶,谁才是你家的最佳选择? - 玖叁鹿
  • 2026佛山防水怎么彻底解决?苏易修缮教你根治漏水不复发全攻略 - 苏易修缮
  • 项目写完后,怎么部署并上线?新手也能看懂
  • 重新掌控你的浏览器:uBlock Origin终极隐私保护指南
  • 云原生助力政府数字化
  • 本地行业实测!武汉黄金变现靠谱选择汇总 - 讯息早知道
  • MC68SZ328 DragonBall Super VZ:经典嵌入式SoC的架构解析与实战设计
  • 人形机器人在工业装配中的真实靶心:结构化动作执行
  • 小说下载工具:打造你的永久数字图书馆
  • SRTP与MACsec硬件加速实战:从PDB配置到错误排查的工程指南
  • 嵌入式Flash存储:从原理到实战,解析NXP 56F80xx安全编程与调试