java的泛型

news2024/9/24 8:28:58

1. 泛型是什么


​ Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter),   这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法

泛型的本质是为了参数化类型(通过泛型指定的不同类型来控制形参具体限制的类型)。

2.泛型的好处

类型安全
使用泛型定义变量的类型约束,编译器可以在非常高的层次上验证类型假设。类型错误就可以在编译时被捕获了,有助于Java开发人员更早、更容易地找到错误,提高程序的可靠性。

消除强制类型转换

泛型的一个附带好处是,消除源代码中的许多强制类型转换

避免不必要的拆装箱

​ 避免了不必要的装箱、拆箱操作,提高程序的性能。

3. 泛型的使用

泛型的三种使用方式:泛型类泛型方法泛型接口

 

 

4. 泛型通配符


E: Element (在集合中使用,因为集合中存放的是元素)
T:Type(Java 类)
K: Key(键)
V: Value(值)
N: Number(数值类型)


通配符上界
<? extends T>,

通配符下界

<? super T>,在类型参数中使用 super 表示这个泛型中的参数必须是 E 或者 E 的父类。

无界通配符

<?>,即类型参数可以是任何类型

5.类型擦除

泛型只在编译阶段有效

Java的泛型是伪泛型,为什么说Java的泛型是伪泛型呢?因为在编译期间,所有的泛型信息都会被擦除掉,我们常称为泛型擦除

java泛型详解_程序own的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何开展兼容性测试?兼容性测试有什么作用?

兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。兼容性测试是软件测试过程中必不可少的一个过程&#xff0c;没有兼容性测试的测试是不完整的测试&#xff0c;下面来分享怎么做兼容测试…

【艾特淘】淘宝卖家如何获取手淘推荐流量?

目前手淘推荐在流量构成中的占比越来越大。平台的推送机制越来越精准&#xff0c;卖家的使用习惯在慢慢改变&#xff0c;因此手淘推荐成了必争之地&#xff0c;尤其是免费的手淘推荐流量&#xff0c;成本很低&#xff01;那么今天就给大家介绍一下手淘推荐的基本操作思路。首先…

【MySQL | 基础篇】04、MySQL 多表查询

目录 一、多表关系 1.1 一对多 ​1.2 多对多 1.3 一对一 二、多表查询概述 2.1 数据准备 2.2 概述 2.3 分类 三、内连接 3.1 案例 四、外连接 4.1 案例 五、自连接 5.1 自连接查询 5.2 联合查询 六、子查询 6.1 概述 6.2 标量子查询 6.3 列子查询 6.4 行…

NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据---大数据之Nifi工作笔记0036

首先拖入一个处理器组,然后把名字修改一下 首先拖入一个处理器组,把名字修改成mysql数据实时采集 然后拖入一个querydatabasetable处理器,然后配置处理器的数据库连接池 创建一个数据库连接池 选择上图中的连接池,然后给service Name改个名字 然后我们点击右边的箭头,然后

用智能手机拍的模糊照片怎么办?学会这个技巧让它变得清晰

智能手机的相机功能越来越强大&#xff0c;但有时候我们还是会拍出一些模糊的照片。这可能是因为手抖或者光线不足等原因导致的。但不要担心&#xff0c;有一些简单的技巧可以帮助您将模糊的照片变得更加清晰。 1.稳定手机 拍摄清晰照片的第一步是确保相机保持稳定。拍照时最…

小技巧 - 王者荣耀战力查询修改战区技巧(轻松拿省标)

项目场景 这个小技巧可能部分资深王者荣耀玩家早就会了哦 主要就是先去查询一下王者荣耀英雄最低战力的战区&#xff0c;再去修改定位到那个地区 这样的话打省标、市标这些会降低不少难度&#xff0c;当然靠实力的就不需要这些花里胡哨了 办法步骤需要的参考哦&#xff0c;…

在Linux中进行Jenkins的yum安装及使用

Jenkins安装在公网IP为y.y.y.y的服务器上 环境准备 第一步&#xff0c;下载jdk-11.0.19_linux-x64_bin.tar.gz安装包。 登录地址&#xff1a;Java Downloads | Oracle 下载jdk-11.0.19_linux-x64_bin.tar.gz安装包&#xff0c;然后使用WinSCP将安装包上传到/usr/local/src文…

windows开启自启动jar包

1.新建txt文本文档 2.复制以下内容&#xff0c;并记得修改 appName 到自己jar包所在目录 并修改jar包名称 3.重命名文本文档.txt为 &#xff08;自己起名字&#xff09;.bat (注&#xff1a;修改成.bat文件&#xff0c;名字自己起) echo off setlocal set appNameD:/tes…

【前端】一个好看的前端页面

序言 突发奇想&#xff0c;看到这个特效还不错&#xff0c;就加工了一下&#xff0c;如果也能帮到你&#xff0c;很开心 先上效果图 部分代码讲解 前端生成uuid function getUUID(len, radix) {var chars 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.s…

音频相关知识

目录 声音的本质 横波与纵波 为什么固体中既能传输横波&#xff0c;又能传输纵波&#xff0c;液体气体中只能传输纵波 声波 超声波与次声波 声音的三要素 音调 响度 音色 噪声 媒体音频 声道 分类 麦克风工作原理 模数转换 扬声器的使用原理 音频压缩类别 音…

进制数转换知识点总结

二进制和十六进制 用0和1表示各种信息 计算机的电路由逻辑门电路组成。一个逻辑门电路可以看成一个开关&#xff0c;每个开关的状态是“开"&#xff08;高电位&#xff09;或“关”&#xff08;低电位&#xff09;&#xff0c;即对应于1或0 课程推荐 【【计算机科学速成…

gRPC-Go源码解读一 客户端请求链路分析

最近在学习gRPC相关的知识&#xff0c;为啥要学呢&#xff1f;因为一直在用&#xff0c;古人云&#xff0c;“工欲善其事&#xff0c;必先利其器”。为此&#xff0c;花了不少时间阅读gRPC-Go的源码&#xff0c;收货甚多&#xff0c;比如透过服务发现和负载均衡这俩组件来学习复…

腾讯地图获得地图经纬度数据进行描边

场景&#xff1a;地图展示城市或区的描边 方案&#xff1a; 登录腾讯地图 微信小程序JavaScript SDK | 腾讯位置服务 申请密钥 按照步骤获得密钥后 阅读api文档&#xff0c;有各种api获得各类数据 示例&#xff1a;以获得地图区域描边经纬度为例 接口调用&#xff1a;直接浏…

OpenAI最新官方ChatGPT聊天插件接口《插件身份验证》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(三)(附源码)

Plugin authentication 插件身份验证 前言Plugin authentication 插件身份验证No authentication 无认证Service level 服务级别User level 用户级别OAuth其它资料下载 前言 “如果你不能信任插件&#xff0c;那么你就不能信任整个应用程序。”正因为如此&#xff0c;ChatGPT始…

机器人中的数值优化(二)—— 凸函数的性质

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考&#xff0c;主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等&#xff0c;本系列文章篇数较多&#xff0c;不定期更新&#xff0c;上半部分介绍无约束优化&#xff0c;…

CentOS7(二)Go、Java、Python、Node开发环境配置

文章目录 Go环境配置Java环境配置Python环境配置Node 环境配置 CentOS7&#xff08;一&#xff09;安装和基础配置 CentOS7&#xff08;二&#xff09;Go、Java、Python、Node开发环境配置 根据前文&#xff0c;我们将所有的自定义环境变量&#xff0c;都收拢在了 /root/.bash_…

如何选一款适合企业的进销存软件?这款软件推荐给你

我们先来聊一聊&#xff0c;什么是进销存&#xff1f; 进销存是指企业管理过程中采购&#xff08;进&#xff09;—>入库&#xff08;存&#xff09;—>销售&#xff08;销&#xff09;的动态管理过程。 再来详细拆解下—— 进&#xff1a;指询价、采购到入库与付款的…

Jmeter实验笔记

Jmeter实验 一、基础操作 启动Jmeter 点击bin目录下的&#xff0c;jmeter进行启动 修改界面语言为中文 发起一个最基本的请求 GET请求 线程组&#xff0c;Http请求&#xff0c;察看结果树 提示:参数、消息体数据这两个按钮是互斥的、只要其中一个有数据&#xff…

【配电网重构】【SOE】随机配电网重构中的开关开换方法研究(Matlab代码实现)

&#x1f4a5; &#x1f4a5; &#x1f49e; &#x1f49e; 欢迎来到本博客 ❤️ ❤️ &#x1f4a5; &#x1f4a5; &#x1f3c6; 博主优势&#xff1a; &#x1f31e; &#x1f31e; &#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 …

数组index相同的数组进行合并

index相等的数据进行合并 let formJson [{remind: "请输入电话",sort: 0,title: "电话",type: 1,uuid: "15e343c1-060d-TL51f-8ace-23a968e9e2b9"},{remind: "请输入姓名",sort: 0,title: "姓名",type: 1,uuid: "15e…