泛型

简介: 泛型

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)的父类(或者是指定的类)

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

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

相关文章
|
2月前
|
安全 算法 Java
深入理解泛型
深入理解泛型
|
10月前
|
存储 安全 Java
泛型的使用
泛型的使用
51 0
|
2月前
|
安全 编译器 Scala
何时需要指定泛型:Scala编程指南
本文是Scala编程指南,介绍了何时需要指定泛型类型参数。泛型提供代码重用和类型安全性,但在编译器无法推断类型、需要提高代码清晰度、调用泛型方法或创建泛型集合时,应明确指定类型参数。通过示例展示了泛型在避免类型错误和增强编译时检查方面的作用,强调了理解泛型使用时机对编写高效Scala代码的重要性。
28 1
何时需要指定泛型:Scala编程指南
|
2月前
|
Java 编译器 语音技术
泛型的理解
泛型的理解
15 0
|
2月前
|
Java
什么是泛型, 泛型的具体使用
什么是泛型, 泛型的具体使用
16 0
|
2月前
|
存储 Java
什么是泛型, 泛型的具体使用?
什么是泛型, 泛型的具体使用?
|
存储 Java 编译器
对泛型的认识
对泛型的认识
|
Java 编译器 API
泛型-详解
泛型-详解
110 0
泛型-详解
|
安全 Java 编译器
第10章 泛型
泛型是什么,以及泛型怎么用。
103 0
|
存储 Java 编译器
一文带你玩转“泛型“
一文带你玩转“泛型“
138 0
一文带你玩转“泛型“