免责声明:我对Java泛型并没有很多经验,但我和同事们刚刚花了一个小时来解读一个类似于以下结构的接口:
interface HasAttributes<A extends HasAttributes<A, B>,
B extends HasAttributesType<B>> extends Identification<B> {
当一个接口泛型采用一个类型参数本身时,这实际上意味着什么?它会产生什么效果?
免责声明:我对Java泛型并没有很多经验,但我和同事们刚刚花了一个小时来解读一个类似于以下结构的接口:
interface HasAttributes<A extends HasAttributes<A, B>,
B extends HasAttributesType<B>> extends Identification<B> {
当一个接口泛型采用一个类型参数本身时,这实际上意味着什么?它会产生什么效果?
这是有意义的 - Java 的 Enum 类是一个类似情况的很好的例子:
public abstract class Enum<E extends Enum<E>>
implements Comparable<E>, Serializable
在这个关于Enum的Stack Overflow问题中,有一些启发性的答案可以为您解决这种特定泛型用法,并比我更优雅地回答。
ILinkedList<T>:where T:ILinkedList<T>{public T next;}
的等价物在Java中可能不存在。 - Alexei LevenkovT getNext();
。该接口中没有任何内容依赖于T
扩展ILinkedList<T>
。如果您将其更改为interface ILInkedList<T> { ... }
,它将编译得很好。 - newacct