我正在学习基本的Java,并且我的代码有一个问题,我无法弄清楚。这基本上是标题所说的。我的Java编译器告诉我,我的自定义compareTo方法有错误,说它需要返回一个int。问题是,据我所知,它返回一个int。但它仍然给我一个错误。有人可以在我的代码中指出什么是错的?而且我已经在我的班级中实施了Comparable。这里是我的方法:Java - 已修改的compareTo方法说它需要返回一个int,但它应该返回一个
public int compareTo(Homework other) {
if (getDaysLate() < other.getDaysLate()) {
return -1;
} else if ((dateSubmitted == other.dateSubmitted)
&& (files.compareTo(other.files) == -1)) {
return -1;
} else if ((dateSubmitted == other.dateSubmitted)
&& (files == other.files)) {
if (name.compareTo(other.name) == -1) {
return -1;
} else if (name.compareTo(other.name) == 1) {
return 1;
} else if (name.compareTo(other.name) == 0) {
return 0;
}
} else {
return 0;
}
}
@TedHopp Right(thanks,fixed)。我还纠正了反对称只是结果的**符号**(都是零,或者一个是正的,另一个是负的)。绝对值并不重要。 – Javier 2013-03-08 06:51:10