繁体   English   中英

自引用实体的通用签名?

[英]A generic signature for self referencing entity?

我为指定类型的子实体定义了一个接口。

// a child of T
interface IChildEntity<T> {
    T getParent();
}

现在我正在尝试为自引用实体定义一个接口。

这些定义中的哪一个更受欢迎?

interface ISelfReferencingEntity<T extends ISelfReferencingEntity<T>>
        extends IChildEntity<T> {
}
interface ISelfReferencingEntity<T extends ISelfReferencingEntity<T> & IChildEntity<T>>
        extends IChildEntity<T> {
}

这是一个适用的实际实体 class。

class Category implements ISelfReferencingEntity<Category> {

    @ManyToOne
    private Category parent;
}

最初的担忧是添加& IChildEntity<T>部分以及extends IChildEntity<T>是否是多余的。

T extends ISelfReferencingEntity<T>意味着T extends IChildEntity<T>因为ISelfReferencingEntity<T>IChildEntity<T> <T> 的子类型。 因此,将& IChildEntity<T>添加到T extends ISelfReferencingEntity<T>是多余的。

以下定义是首选:

interface ISelfReferencingEntity<T extends ISelfReferencingEntity<T>>
        extends IChildEntity<T> {
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM