通用接口将自身作为参数。递归泛型?
免责声明:我对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
在这个关于枚举的 Stack Overflow 问题中有一些启发性的答案,应该可以为您阐明泛型的这种特殊用法,并且比我更优雅地回答这个问题。