两个相同类型的对象每个都有一个名为intValue的int属性。如何使用Comparable接口根据intValue int值比较这两个对象?
public int compareTo(myObject other) {
return (this.intValue).compareTo(other.intValue);
}
firstObject.compareTo(secondObject);
这会产生错误
error: int cannot be dereferenced
答案 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.valueOf
与compareTo
结合使用相同:
public int compareTo(myObject other) {
return Integer.valueOf(this.intValue).compareTo(Integer.valueOf(other.intValue));
}