1.定义带类型参数的类:
在定义带类型参数的类时,在紧跟类名之后的<>内,指定一个或多个类型参数的名字,同时也可以对类型参数的取值范围进行限定,多个类型参数之间用逗号","隔开。
定义完类型参数后,可以在定义位置之后的类的几乎任意地方(静态块,静态方法,静态属性除外)使用类型参数,就像使用普通的类型一样。
public class TestClass<T,S extends T>{... ...}
2.定义带类型参数的方法:
在定义带类型参数的方法时,在紧跟可见范围修饰(public private protected)之后的<>内,指定一个或多个类型参数的名字,同时也可以对类型参数的取值范围进行限定,多个类型参数之间用逗号分隔。
定义完类型参数后,可以在定义位置之后的方法的任意地方使用类型参数,就像使用普通的类型一样
public <T,S extends T> T testMethod(T t,S s){... ...}
3.java泛型中的extends和super关键字:
<? extends T>:表示上界,表示参数化类型的可能是T或T的子类
<? super T>:表示下界(超类型限制),表示参数化类型是此类型的超类型,直至Object