泛型

泛型

注意点:

  • 泛型中不能写基本数据类型(要写引用数据类型比如:String)
  • 指定泛型的具体类型后,传递数据时,可以传入该类类型或者其子类类型
  • 如果不写泛型,类型默认是Object

【笔者批:泛型是在编辑视设卡,转成class文件时会消失(泛型的擦除),在jdk5中出现泛型,因为以前的屎山代码太多不好改】

泛型类

使用场景:当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类

/*格式:
修饰符class类名<类型>{}
*/
//举例:
public class ArrayList<E>{
    //创建该类对象时,E就确定类型
}

此处E可以理解为变量,但是不是用来记录数据的,而是记录数据的类型,可以写成别的字母,一般T、E、K、V等比较多(因为type,element,key,value)

假设有两个人,一个大佬写泛型类,一个新手引用大佬写的泛型类

大佬在写泛型类时<>里写字母如E表示不确定的类型,新手在引用泛型类时需要在<>里写上引用数据类型,如String等

泛型方法

方法中形参类型不确定时(一般是指在一个类中,只有一个方法需要不确定的类)

  • 方案一:使用类名后面定义的泛型 -->所有方法都能用
  • 方案二:在方法申明上定义自己的泛型 -->只有本方法能用

格式:在修饰符后面加上<>即可,

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

如:public < T > void show ( T t ){

} //T表示不确定的类型,t表示一个变量,类似于String str

泛型接口

在集合中要添加的数据类型是不确定的

格式:在接口名后加上<>即可,

修饰符 interface 接口名<类型>{ }

举例:public interface List< E > { }

重点:如何使用一个带泛型的接口
  • 方式1:实现类给出具体的类型
  • 方式2:实现类延续泛型,创建对象时再确定

例如:

//方式1:实现类给出具体的类型
public class MyArrayList implements List<String>{
    //大括号里再重写所有的方法
}
//方式2:实现类延续泛型,创建对象时再确定
public class MyArrayList<E> implements List<E>{
    //大括号里再重写所有的方法
}
posted @ 2023-10-17 21:05  JenckMin  阅读(3)  评论(0编辑  收藏  举报