我正在尝试定义一个接口,以便所有实现类必须与它们自己及其子类可比较。
例如,考虑:
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;}
}
答案 0 :(得分:2)
我希望你能尝试这样的事情:
public class Rating implements Comparable<? extends Rating> {
...
}
或者(虽然我不确定你能做到这一点):
public interface Rating extends Comparable<? extends Rating> {
...
}
有关有界通配符的详细信息,请参阅this page at Oracle。
答案 1 :(得分:-1)
我想你可能希望你的“compareTo()”返回“0”以外的东西;)
您可以使用“instanceof”查看任意对象是否是某个特定类(或子类)
我不确定重载“compareTo()”一定是个好主意。您甚至可能想要输入参数“Object o”。
恕我直言.. pSM