通用接口将self作为参数。 递归通用?

免责声明:我对Java Generics没有丰富的经验,但是我和我的同事们花了一个小时才试图破译一个结构如下的界面:

interface HasAttributes<A extends HasAttributes, B extends HasAttributesType> extends Identification { 

当接口generics采用本身的类型参数时,它到底意味着什么? 这是做什么的?

这有意义 – Java的Enum类是一个很好的例子:

 public abstract class Enum> implements Comparable, Serializable 

这个关于Enum的Stack Overflow问题有一些有启发性的答案,应该为你对generics的特殊用法有所了解,并且比我更优雅地回答这个问题。