泛型

简介: 泛型

List中添加元素存在的问题

  1. 往集合当中存储元素,可以存任何类型元素

//1.往集合当中存储元素,可以存任何类型元素
List list = new ArrayList();
list.add(1);
list.add("abc");
//取出来全是Object
Object obj = list.get(1);
//现在想要使用字符串当中 特有的方法 ,必须得要转回来
String str = (String)obj;
str.substring(0, 1);

没有泛型存在的问题



泛型概念

什么是泛型

广泛通用的类型,一开始还不确定是什么类型,在使用的时候,才能确定是什么类型,

  1. 在开始定义类的时候,留一个插口
  2. 在创建对象的时候,再去插入对应的类型

泛型注意点

  1. 泛型前后类型必须得要保持一致
  2. 从 JAVA7 开始,后面的类型可以不写 new ArrayList<>(); 菱形语法
  3. 泛型是没有继承
  4. 泛型其实是一个语法糖。(本质还是Object 内部其实 还是要做强转)

没有使用泛型的List


泛型类

在类上面定义的泛型,在创建对象的时候,要指明泛型的类型, 泛型当中定义的泛型只能用在普通方法上面,不能使用在静态方法上面,静态方法是直接使用类名调用,泛型是在创建对象的时候,才去指定类型

泛型方法

就是在方法上面添加了泛型,单独对一个方法上面声明泛型,方法当中定义的泛型

自定义泛型方法

通配符

不知道使用什么类型来接收的时候,可以使用?表示未知,通配符只用来做接收使用,不能做添加操作


泛型的上限

泛型的上限:用来限定元素的类型必须得指定类型(Number)的子类<或者是指定类型或者指定类的子类>

泛型的下限

用来限定元素的类型必须得指定类型(Number)的父类(或者是指定的类)

泛型擦除(把泛型给去掉)

把一个有泛型集合 赋值给了一个没有泛型的集合最后就没有 泛型 -> 泛型擦除(把泛型给去掉)

相关文章
|
缓存 Linux 调度
Docker介绍
Docker介绍
448 0
|
机器学习/深度学习 人工智能 前端开发
未来趋势:人工智能在前端开发中的应用
随着人工智能技术的快速发展,前端开发领域也迎来了新的变革。本文将深入探讨人工智能在前端开发中的应用现状,并展望未来的发展趋势,带领读者一窥未来前端开发的可能面貌。
|
JSON 测试技术 API
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程
409 3
|
9月前
|
安全 数据安全/隐私保护 虚拟化
Windows Server 2022 中文版、英文版下载 (2025 年 3 月更新)
Windows Server 2022 中文版、英文版下载 (2025 年 3 月更新)
593 4
Windows Server 2022 中文版、英文版下载 (2025 年 3 月更新)
|
消息中间件
使用RabbitMQ如何保证消息不丢失 ?
RabbitMQ通过发布者确认、回执机制、消息持久化及消费者确认等方案,确保消息从发送到接收的每个环节都能有效防止丢失。即便如此,特殊情况下仍可能丢失,如系统故障等。为此,可设计消息状态表,记录消息ID、内容、交换机、路由键、发送时间和签收状态等,结合定时任务检查并重发未签收消息,以进一步提升消息传输的可靠性。
248 1
|
11月前
|
存储 Java 计算机视觉
Java二维数组的使用技巧与实例解析
本文详细介绍了Java中二维数组的使用方法
400 15
|
9月前
|
人工智能 Java 程序员
通义灵码 2.0 | AI程序员 荣耀登场
通义灵码2.0引入了AI程序员,具备多文件代码修改和使用工具的能力,可帮助开发者完成需求实现、问题解决、单元测试用例生成等任务。相比1.0版本,2.0在代码生成速度、准确度及自然语言理解方面有显著提升,支持更多上下文类型如#file、#codeChanges等,便于灵活提问与代码审查。本文通过实际操作展示了AI程序员在功能开发、跨语言编程等方面的应用,体验良好;但在单元测试环节遇到环境检查问题未能解决,希望后续能提供更详细的修复文档。总体而言,AI程序员大幅提升了开发效率,尤其在新功能迭代和错误排查方面表现出色,但生成的代码风格有时需人工调整以适应现有项目结构。
|
数据采集 数据可视化 数据挖掘
深入浅出:Python在数据分析中的应用实践
本文旨在探讨Python语言在数据分析领域的高效应用,通过简洁的语法和强大的库支持,Python已成为数据科学家和分析师的首选工具。文章首先介绍了Python在数据处理、清洗、分析及可视化方面的基础知识,随后通过一个实际案例,展示了如何利用Pandas、NumPy、Matplotlib等库进行数据分析的完整流程。通过本文,读者将能够理解Python在数据分析中的核心价值,掌握其基本操作方法,并能够在实际项目中灵活运用。
|
缓存 JavaScript
【vue】如何实现图片预加载
【vue】如何实现图片预加载
216 0