查看jdk源码
public abstract class Enum<E extends Enum<E>>
那么这个递归泛型到底是什么,好烦啊!!!
那么先看这么一个问题,有一个泛型E
abstract class A<E>{
E get();
}
如何能让get方法每次 都返回A本身,让它的子类也能够返回他本身。
那么我们声明成上面所示那样
abstract class A<E extends A<E>>{
E get();
}
class B extends A<B>{
E get(){}
}
当你声明B继承A的时候,泛型只能传递B(或者A的其它子类),因为此时只有B符合对泛型E的要求:继承自A