JAVA泛型总结

泛型命名

泛型一些约定俗成的命名:

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];
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容