java-泛型介绍

news2024/11/28 0:56:13

介绍

泛型是jdk5的时候出现的一种特性,可以在编译阶段约束操作的数据结构,并进行检查。

泛型只能用引用数据类型,如果是基本数据类型得使用包装类。
如ArrayList中的toArray(T[] a),是不可用转换为int[]的只能转换为Integer[]

好处

统一了数据类型,把运行时期的问题提前到了编译时期,避免强制转换可能出现异常

不过java的泛型是伪泛型,在编译成字节码后会进行编译的擦除

为了jdk5以前软件的兼容

使用

可以写在类、接口上,也可以写在方法上
确定泛型后,可以传递数据的子类。但是不能

修饰符 class 类名<类型>{
}

在这里插入图片描述

方法

在方法定义的只能在本方法使用泛型

修饰符 <T> 返回值类型 方法名(<T> a){
}

在这里插入图片描述

接口

在这里插入图片描述
实现的泛型接口的实现类,可以明确类型也可以不明确
明确类型的
在这里插入图片描述
也可以不明确
在这里插入图片描述

继承

泛型(上面的类接口和方法)是没有继承性的,数据是可以的。
如果一个方法调用了ArrayList< Object>参数
则是不可用ArrayList< Integer>。
而ArrayList< Object>是可以加入Integer数据的

通配符

?代表所有类型
? extend/super E E和其子类/父类
不过一旦定好了类就不可用加其他类型了,即使是子类。

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

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

相关文章

Mysql的数据存储

Mysql的数据存储 对于mysql而言&#xff0c;数据是存储在文件系统中的&#xff0c;不同的存储存储引擎会有不同的文件格式和组织形式 1、InnoDB数据存储 InnoDB存储格式由大到小&#xff1a;表空间 → 段 → 区 → 页 → 行 对于innodb而言&#xff0c;数据是存储在表空间&…

linux系统整理一些工作中常用关于用户,用户组以及文件权限操作的相关命令

文章目录问题&#xff1a;前言&#xff1a;用户和用户组概念前言一、用户前言二、用户组一、添加用户和用户组二、查看用户所属组命令、三、管理用户组方法一、gpasswd命令方式二、newgrp命令方式三、usermod命令用户组实战&#xff1a;赋予用户root权限四、文件修改权限命令ch…

数字孪生与 UWB 技术创新融合:从单点测量到全局智能化

人员定位是指利用各种定位技术对人员在特定场所的位置进行准确定位的技术。人员定位技术主要应用于需要实时监控、管理和保障人员安全的场所&#xff0c;如大型厂区、仓库、医院、学校、商场等。人员定位技术的应用范围非常广泛&#xff0c;例如&#xff1a;-在工厂生产线上&am…

服务器Nginx安装实战

因为Vue项目发布在Tomcat中出现跨域为&#xff0c;所以需要Nginx进行反向代理&#xff0c;所以特此在云服务器中安装Nginx&#xff0c;本文章记录安装过程及解决安装过程中的错误处理。 一、Nginx 安装 登录服务器后&#xff0c;执行命令 yum info gcc-c pcre pcre-devel zl…

keras lstm

keras lstm的参数&#xff08;1&#xff09;units&#xff1a;LSTM层的单元个数&#xff0c;即LSTM网络中隐藏节点的数量。&#xff08;2&#xff09;activation&#xff1a;激活函数&#xff0c;用于更新内部状态的函数&#xff08;即门的决策函数&#xff09;。&#xff08;3…

dotConnect Universal 4.0.134 Crack

dotConnect Universal 能够呈现和访问不同于Microsoft 和框架的数据库的信息。网。它能够支持大多数数据库服务器以及 Microsoft Access、Oracle、MySQL、DB2、PostgreSQL、SQLite、InterBase、FireBird&#xff0c;最后是 Microsoft SQL Server。它可以通过 ODBC、OLE DB、ADO…

我来跟你讲vue进阶

一、组件&#xff08;重点&#xff09; 组件&#xff08;Component&#xff09;是 Vue.js 最强大的功能之一。 组件可以扩展 HTML 元素&#xff0c;封装可重用的代码。 组件系统让我们可以用独立可复用的小组件来构建大型应用&#xff0c;几乎任意类型的应用的界面都可以抽象…

ThreadLocal 的简单使用并深扒其实现原理

在多线程环境下, 如果想要保证每个线程都能独立于其它线程独自运行, 可以使用 ThreadLocal 来解决; ThreadLocal 就是用于提供线程局部变量的一个工具, 也就是说 ThreadLocal 可以为每个线程创建一个单独的变量副本; 其概念与同步机制正好相反, 同步机制是保证多线程环境下数据…

elasticSearch写入原理

elasticSearch写入原理 最近学习完了es相关的课程整理除了es的核心内容&#xff0c;学习这东西知其然知其所以然&#xff0c;自己按照自己的理解整理了es相关的面试题。先热个身&#xff0c;整理一下es的写入原理&#xff0c;有不对的地方请大家指正。 这些原理的东西我觉得还是…

MySql数据库(进阶篇)

&#x1f44c; 棒棒有言&#xff1a;人生总是在前行&#xff0c;不论走到哪里&#xff0c;只要带着信念往前走&#xff0c;比别人多一点努力&#xff0c;你就会多一份成绩&#xff1b;比别人多一点志气&#xff0c;你就会多一份出息&#xff1b;比别人多一点坚持&#xff0c;你…

js学习3(数组)

目录 结构图 数组操作 每日一练 结构图 数组操作 ## 数组中可以存储任何类型元素 ## 创建&#xff1a; 字面量([...])、创建对象(new Array(arr_len)) ## 遍历&#xff1a; 循环遍历、forEach(callback)、map(callback)、filter(callback)、every(callback)、some(callback)、…

1637_fgets函数的功能

全部学习汇总&#xff1a; GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 没想到分析一个函数的实现会这么麻烦&#xff0c;中间利用的一系列的库函数以及内核接口我全都不熟悉。但是&#xff0c;这次的这个函数应该是之前C语言的基本教程…

vscode下载与使用

1.vscode下载 官网下载地址&#xff1a;Download Visual Studio Code - Mac, Linux, Windows下载太慢&#xff0c;推荐文章&#xff1a;解决VsCode下载慢问题_vscode下载太慢_迷小圈的博客-CSDN博客下载太慢&#xff0c;推荐下载链接&#xff1a;https://vscode.cdn.azure.cn/s…

JavaScript Array(数组)对象

数组对象的作用是&#xff1a;使用单独的变量名来存储一系列的值。参数参数 size 是期望的数组元素个数。返回的数组&#xff0c;length 字段将被设为 size 的值。参数 element ...; elementn 是参数列表。当使用这些参数来调用构造函数 Array() 时&#xff0c;新创建的数组的元…

SEO技术风口来了|SEO能否抓住全球约93%的网络用户?

开篇词作者/出品人 | 美洽 SEO 流量专家 白桦为什么要做一个 SEO 专栏&#xff1f;在一部分人眼中&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经是老掉牙的玩意儿&#xff0c;在这个信息爆炸的年代&#xff0c;它似乎已经无法承担吸引流量的主要作用。但&#xff…

2023年3月北京/广州/杭州/深圳数据治理工程师认证DAMA-CDGA/CDGP

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

代码随想录算法训练营第二十四天 | 理论基础、 77. 组合

打卡24天&#xff0c;今天学第七章回溯算法&#xff0c;之前已经学过一遍&#xff0c;现在学第二遍&#xff0c;加油。 今日任务 理论基础77.组合 理论基础 什么是回溯 递归的副产物&#xff0c;有递归就会有回溯 红色的箭头就是回溯 回溯的效率 回溯的本质是穷举&#xff…

ROS通信机制

参考&#xff1a; bilibiliAutolabor官方 回调函数&#xff1a;&#xff01; 由外部中断激发而执行的函数&#xff0c;函数执行的时间不由函数本身控制&#xff0c;而是由外部激发 1、话题通信 ​ publisher发布者&#xff0c;和subscriber订阅者通过topic相互连接&#xf…

设计模式5——自定义Spring框架

1、Spring核心功能结构 Spring大约有20个模块&#xff0c;由1300多个不同的文件构成。这些模块可以分为&#xff1a;核心容器、AOP和设备支持、数据访问与集成、Web组件、通信报文和集成测试等。下面是Spring框架的整体架构图&#xff1a; 核心容器由beans、core、context 和 …

Vue脚手架的安装(保姆级教程)

Vue脚手架的安装&#xff08;保姆级教程&#xff09; 文章目录Vue脚手架的安装&#xff08;保姆级教程&#xff09;1.下载vscode2.node下载5.Vue脚手架的安装6.创建Vue项目7.项目的运行1.下载vscode vscode下载地址 2.node下载 node下载 1.打开cmd node -vnpm -v2.在node的…