java泛型--古怪循环泛型,自限定和参数协变

古怪循环泛型:创建一个类的时候,其所继承的泛型类接受当前所创建的类的类型作为参数。

1 interface GenericGetter<T>{
2     T get();
3 }
4 
5 interface Getter extends GenericGetter<Getter>{}

 

自限定:将当前创建的类作为继承的泛型类的泛型参数边界

作用:保证类型参数必须与正在被定义的类相同

1 interface GenericGetter<T extends GenericGetter<T>>{
2     T get();
3 }
4 
5 interface Getter extends GenericGetter<Getter>{}

 

参数协变:方法的参数类型会随着子类的变化而变化。

1 class Parent<T extends Parent<T>>{
2     T get(T obj) {
3         return obj;
4     }
5 }
6 
7 class Child extends Parent<Child>{}

 

posted @ 2021-06-18 19:30  一穷三白  阅读(161)  评论(0)    收藏  举报