我刚刚发现这个考试题目,无法弄清楚:
下面描述了一个实现Comparable接口的设计部分类.这个设计类的唯一目的是将它的实例与给定的字符串进行比较.
我们需要在课堂上填写两件事来完成它.这是班级:
public class PrivateComparableClass // FILL IN PART 1 {
private String thing;
public PrivateComparableClass(String thing) {
this.thing=thing;
}
//FILL IN PART 2
}
我假设第1部分只对应于:
public class PrivateComparableClass implements Comparable {
第2部分,我假设他期待compareTo方法的实现,但我真的不知道如何正确地实现这个:
public static int compareTo() {
if this.thing.equals(thing){
return 1;
} else {
return -1;
}
}
我该如何解决这个问题?
解决方法:
首先,第1部分应该是:
public class PrivateComparableClass implements Comparable<PrivateComparableClass> {
至于第2部分,如果thing是类中唯一的数据成员,你可以简单地搭载String.compareTo:
public int compareTo(PrivateComparableClass rhs) {
return this.thing.compareTo(rhs.thing);
}
我建议您阅读compareTo
is meant to work(有三种可能的结果:小于,等于和大于).