泛型
注意点:
- 泛型中不能写基本数据类型(要写引用数据类型比如: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>{
//大括号里再重写所有的方法
}
标签:修饰符,数据类型,class,类型,泛型,public
From: https://www.cnblogs.com/tenset/p/17778210.html