实现可比较的界面

Joh*_*tsy 3 java compare comparable

我刚刚发现这个考试题目,无法弄清楚:

下面描述了一个实现Comparable接口的设计部分类.这个设计类的唯一目的是将它的实例与给定的字符串进行比较.

我们需要在课堂上填写两件事来完成它.这是班级:

public class PrivateComparableClass // FILL IN PART 1 { 
   private String thing;

    public PrivateComparableClass(String thing) {
     this.thing=thing;
    }
   //FILL IN PART 2
}
Run Code Online (Sandbox Code Playgroud)

我假设第1部分只对应于:

public class PrivateComparableClass implements Comparable {
Run Code Online (Sandbox Code Playgroud)

第2部分,我假设他期待compareTo方法的实现,但我真的不知道如何正确地实现这个:

public static int compareTo() {
  if this.thing.equals(thing){
  return 1;
  } else {
    return -1;
  }
}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

NPE*_*NPE 5

首先,第1部分应该是:

public class PrivateComparableClass implements Comparable<PrivateComparableClass> {
Run Code Online (Sandbox Code Playgroud)

至于第2部分,if thing是该类中唯一的数据成员,您可以简单地搭载String.compareTo:

public int compareTo(PrivateComparableClass rhs) {
  return this.thing.compareTo(rhs.thing);
}
Run Code Online (Sandbox Code Playgroud)

我建议你阅读一下如何compareTo工作(有三种可能的结果:小于,等于和大于).