我正在尝试做这样的事情,但是Java不允许我这样做。我怀疑自己做错了什么,但我真的不知道该怎么办。
public interface PopulationMember extends Comparable<T extends PopulationMember> {
int compareTo(T o);
T merge(T o);
// Some other stuff
}
似乎认为T应该是一个类,而不是泛型。我的问题类似于this one,但不完全相同。我要拥有的所有类型的要点是,我可以将其与同一子类型的其他事物进行比较,而又不能将其与任何其他PopulationMember对象进行比较。
最佳答案
试试这个:
public interface PopulationMember<T extends PopulationMember> extends Comparable<T> {
int compareTo(T o);
T merge(T o);
// Some other stuff
}
填写类型参数时(就像对
Comparable
一样),您需要提供一个类。如果您不希望它成为特定的类,则可以参数化您的接口。