Java Comparable接口:compareTo int属性

时间:2016-09-23 13:06:53

标签: java interface

两个相同类型的对象每个都有一个名为intValue的int属性。如何使用Comparable接口根据intValue int值比较这两个对象?

  public int compareTo(myObject other) {
    return (this.intValue).compareTo(other.intValue);
  }

firstObject.compareTo(secondObject);

这会产生错误

error: int cannot be dereferenced

1 个答案:

答案 0 :(得分:1)

首先确保您的myObject类实现Comparable接口:

public class myObject implements Comparable<myObject>

如果您使用原始compareTo值推断int返回的值,则可以使用Integer.compare方法:

public int compareTo(myObject other) {
    return Integer.compare(this.intValue, other.intValue);  
}

这在逻辑上与将Integer.valueOfcompareTo结合使用相同:

public int compareTo(myObject other) {
    return Integer.valueOf(this.intValue).compareTo(Integer.valueOf(other.intValue));
}