泛型相关知识
2026/6/24 5:33:23 网站建设 项目流程

泛型,泛型类,泛型方法

泛型--泛型的出现就是为了统一集合中的数据类型

泛型是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查

在jdk5之前,没有泛型的时候,集合里可以存任意类型的数据,但是都会视为object类型,取出的时候都会变成object(原理是:通过多态的方式取出)

这样的缺点是:无法使用该类的特有功能(多态的弊端:无法使用子类的特有功能)

如:存入的时候是字符串,取出的时候是object类型,无法使用字符串中的获取字符串长度的方法

强转的时候很麻烦,容易出现类型转换异常

java中的泛型是伪泛型

执行步骤:

1.在存储的时候查看是不是指定类型的数据

2.在存储的过程中还是按照object类型来存储

3.在取出的时候强转为指定类型

泛型的细节

1.泛型不能使用基本数据类型

因为泛型在存储的时候还是要转成object类型来存储的,如果是基本数据类型就没办法转成object类了

2.指定泛型的具体类型之后,传递数据时,可以传入该类类型或者其子类类型

但是一般很少这样写

3.如果不写泛型,类型默认为object

泛型类

泛型:在某个变量的数据类型不确定的时候,就可以定义带有泛型的类

import java.util.Arrays; public class MyArrayList<R> { /** * 手搓一个集合源码 */ //集合在存储的时候都是存储为Object Object[] objects; int index = 0; //集合在取出的时候才会强转为泛型指定的类型 public R get(int index){ return (R)objects[index]; } public R add(R value){ objects[index] = value; index++; return value; } // 无参构造:初始化数组 public MyArrayList() { objects = new Object[10]; // 关键:给数组分配内存空间 } @Override public String toString() { return "MyArrayList{" + "objects=" + Arrays.toString(objects) + ", index=" + index + '}'; } }
package ArrayList; public class TestList { public static void main(String[] args) { MyArrayList<String> myArrayList = new MyArrayList<>(); myArrayList.add("aaa"); System.out.println(myArrayList); } }

泛型方法

泛型定义

泛型定义的两种方法:

1.写在类名后面

2.写在方法上的标识符后面

这样就定义好了泛型

泛型接口

泛型的通配符和综合练习

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询