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

Dan*_*ham 14 java generics

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

interface HasAttributes<A extends HasAttributes<A, B>, 
                        B extends HasAttributesType<B>> extends Identification<B> {
Run Code Online (Sandbox Code Playgroud)

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

Jos*_*non 12

这有意义 - Java的Enum类是一个类似情况的好例子:

public abstract class Enum<E extends Enum<E>>
    implements Comparable<E>, Serializable
Run Code Online (Sandbox Code Playgroud)

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

  • "这有意义"所以,你为什么不解释这个含义? (5认同)