Java 为什么可以';我不能用接口做这个吗?

Java 为什么可以';我不能用接口做这个吗?,java,generics,interface,Java,Generics,Interface,我正试图做类似的事情,但Java不让我这么做。我怀疑我只是做错了什么,但我真的不知道是什么 public interface PopulationMember extends Comparable<T extends PopulationMember> { int compareTo(T o); T merge(T o); // Some other stuff } 公共接口填充成员扩展{ int compareTo(to); T合并(to); //一些其

我正试图做类似的事情,但Java不让我这么做。我怀疑我只是做错了什么,但我真的不知道是什么

public interface PopulationMember extends Comparable<T extends PopulationMember>  {
    int compareTo(T o);
    T merge(T o);
    // Some other stuff
}
公共接口填充成员扩展{
int compareTo(to);
T合并(to);
//一些其他的东西
}
似乎认为T应该是一个类,而不是泛型类型。我的问题类似于,但不完全相同。关键是我想要一个类型,我可以将它与同一子类型的其他东西进行比较,而不需要将它们与任何其他PopulationMember对象进行比较

试试这个:

public interface PopulationMember<T extends PopulationMember> extends Comparable<T> {
    int compareTo(T o);
    T merge(T o);
    // Some other stuff

}
公共接口填充成员扩展{
int compareTo(to);
T合并(to);
//一些其他的东西
}
当您填写类型参数时(就像您为
Compariable
所做的那样),您需要提供一个类。如果您不希望它是一个特定的类,您可以参数化您的接口。

接口填充成员{
interface PopulationMember<T extends PopulationMember> extends Comparable<T>  {
    ...
}
... }
您可以在当前类(接口)上指定泛型边界,而不是在扩展类(接口)上指定泛型边界