泛型命名
泛型一些约定俗成的命名:
E - Element
K - Key
N - Number
T - Type
V - Value
S,U,V etc. - 2nd, 3rd, 4th types
上界通配符
可以使用上界通配符来缩小类型参数的类型范围。
它的语法形式为:<? extends Number>
下界通配符
下界通配符将未知类型限制为该类型的特定类型或超类类型。
注意:上界通配符和下界通配符不能同时使用。
它的语法形式为:<? super Number>
定义泛型
1.定义在类后面
紧跟类名后面
public class TestClassDefine<T, S extends T>{}
定义泛型 T, S, 且S 继承 T
2.定义在方法装饰符后面
紧跟修饰符后面(public)
public <T, S extends T> T testGenericMethodDefine(T t, S s){}
定义泛型 T, S, 且S 继承 T
获取泛型参数类型
接口的泛型类型:
Class<T> = (Class<T>) ((ParameterizedType)this.getClass().getGenericInterfaces()[0]).getActualTypeArguments()[0];
类的泛型类型:
Class<T> = (Class<S>) ((ParameterizedType)this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
网友评论