泛型详解:
泛型=“参数化类型”,定义方法的时候有形参,调用的时候传递的是实参,参数化类型:类似方法中的变量参数,类型定义称参数形式(类型形参),调用或者使用的时候传入具体的类型(类型实参)。
泛型就是为了参数化类型,(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。
泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类,接口和方法中,分别为泛型类,泛型接口,泛型方法。
泛型的接口:
泛型有三种使用方式,分别为:泛型类,泛型接口,泛型方法。
泛型类
泛型类的基本写法:
class 类名称 <泛型标识:/*可以随便写任意标识号,标识指定的泛型的类型*/>
{
private //泛型标识 /*(成员变量类型)
}
//这个地方的T写成什么都可以,常见的就是T,E,K,V等参数就是表达泛型
//实例化泛型类时,必须指定T的具体类型
public class Generic<T>{
//key这个成员变量为T,T的类型由外部指定
private T key;
public Generic(T key){ //泛型构造方法形参key的类型也为T,T的类型也由外部指定
this.key = key;
}
public T getKey(){ //泛型方法getKey的返回值类型为T,T的类型由外部指定
return key;
}
}
//泛型的类型参数只能是类类型(包括自定义类),不能是简单类型
//传入的实参类型要与泛型的类型参数类型相同,即为/Integer
Generic<Integer> genericInteger = new Generic<Integer>(123456);
//传入的实参类型要与泛型的类型参数类型相同,即为/String
Generic<String> genericString = new Generic<String>("xiaocui");