私は基本的なJavaを今学んでおり、わからないコードに問題があります。それは基本的にタイトルが言っているものです。私のJavaコンパイラは、私のカスタムcompareToメソッドにエラーがあり、intを返す必要があると言っています。問題は、私が知る限り、intを返すことです。まだそれは私に間違いを与えている。誰かが間違っていることを私のコードで指摘してもらえますか?また、私は既にクラスでComparableを実装しています。Javaで修正されたcompareToメソッドは、intを返す必要があると言っていますが、1を返す必要があります。
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権利(ありがとう、固定)。私はまた、反対称性が結果の*記号**(両方ともゼロ、または一方が正、他方が負である)にのみ必要であると訂正しました。絶対値は関係ありません。 – Javier