定义实现可比较的接口

时间:2011-11-28 23:13:21

标签: java interface comparable

我正在尝试定义一个接口,以便所有实现类必须与它们自己及其子类可比较。

例如,考虑:

public interface Rating implements Comparable<Rating> {}

这意味着实现类必须与所有评级相比:

public class A implements Rating {
    public int compareTo(Rating r) {return 0;}
}

我想放宽那个要求,以便我可以定义一个类:

public class A implements Rating {
    public int compareTo(A a) {return 0;}
}

2 个答案:

答案 0 :(得分:2)

我希望你能尝试这样的事情:

public class Rating implements Comparable<? extends Rating> {
   ...
}

或者(虽然我不确定你能做到这一点):

public interface Rating extends Comparable<? extends Rating> {
   ...
}

有关有界通配符的详细信息,请参阅this page at Oracle

答案 1 :(得分:-1)

  1. 我想你可能希望你的“compareTo()”返回“0”以外的东西;)

  2. 您可以使用“instanceof”查看任意对象是否是某个特定类(或子类)

  3. 我不确定重载“compareTo()”一定是个好主意。您甚至可能想要输入参数“Object o”。

  4. 恕我直言.. pSM