news 2026/6/15 20:33:45

Java泛型核心知识点详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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. 通用工具类、通用结果返回类
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 17:38:03

ARM9核心SoC i.MX21架构解析与嵌入式开发实战

1. 从ARM9核心到片上系统&#xff1a;i.MX21处理器深度解析在嵌入式系统开发领域&#xff0c;选择一颗合适的处理器往往是项目成败的关键。十几年前&#xff0c;当飞思卡尔&#xff08;现恩智浦&#xff09;推出i.MX21应用处理器时&#xff0c;它在当时的中高端嵌入式市场掀起了…

作者头像 李华
网站建设 2026/6/15 17:38:29

Agent-Skills 核心能力与实战表现深度评测

在构建智能应用时&#xff0c;很多开发者往往只关注模型本身的对话能力&#xff0c;却忽视了“技能”这一关键扩展机制的实际表现。当业务逻辑从简单的问答延伸到需要调用外部 API、查询数据库或执行复杂计算时&#xff0c;模型的稳定性与准确性就成了决定项目成败的核心因素。…

作者头像 李华
网站建设 2026/6/15 17:36:21

华为ENSP模拟企业网:从内网服务器发布到员工上网,一套NAPT配置全搞定

华为ENSP实战&#xff1a;企业级NAT综合配置指南当你在华为ENSP模拟器中搭建企业网络时&#xff0c;最常遇到的挑战之一就是如何高效地管理有限的公网IP地址。想象这样一个场景&#xff1a;公司有一台需要对外提供服务的Web服务器&#xff0c;同时还有几十名员工需要上网。如果…

作者头像 李华
网站建设 2026/6/15 17:37:19

Cursor Free VIP:解锁AI编程助手无限潜能的智能破解方案

Cursor Free VIP&#xff1a;解锁AI编程助手无限潜能的智能破解方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your t…

作者头像 李华
网站建设 2026/6/15 17:32:55

美国签证预约自动化神器:告别熬夜抢号的智能解决方案

美国签证预约自动化神器&#xff1a;告别熬夜抢号的智能解决方案 【免费下载链接】us-visa-bot US Visa Bot 项目地址: https://gitcode.com/gh_mirrors/us/us-visa-bot 还在为美国签证预约的漫长等待而焦虑吗&#xff1f;面对有限的面试名额和激烈的竞争环境&#xff0…

作者头像 李华
网站建设 2026/6/15 17:43:02

QMC协议深度解析:在QUICC处理器中实现高密度TDM通信

1. 项目概述&#xff1a;QMC协议在通信处理器中的核心价值与实现逻辑在嵌入式通信系统设计领域&#xff0c;尤其是涉及E1/T1、ISDN PRI/BRI或任何基于时分复用&#xff08;TDM&#xff09;总线的应用中&#xff0c;一个核心挑战是如何在有限的硬件资源上高效、灵活地支持大量独…

作者头像 李华