Ich lerne grundlegende Java jetzt und habe ein Problem mit meinem Code, dass ich nicht herausfinden kann. Es ist im Grunde, was der Titel sagt. Mein Java-Compiler sagt mir, dass es ein Fehler mit meiner benutzerdefinierten compareTo-Methode, sagen, dass es ein int zurückgeben muss. Das Problem ist, soweit ich das beurteilen kann, es gibt einen int zurück. Trotzdem gibt es mir immer noch einen Fehler. Könnte jemand bitte in meinem Code darauf hinweisen, was falsch ist? Und ich habe auch Vergleichbares in meiner Klasse implementiert. Hier ist meine Methode:Java - Modifizierte compareTo Methode sagt, es muss eine int zurückgeben, aber es sollte eine zurückgeben
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 Richtig (danke, behoben). Ich korrigierte auch, dass antisymmetry nur für den ** Zeichen erforderlich ist ** des Ergebnisses (beide Null sind, oder eine positiv und die andere negativ ist). Der absolute Wert spielt keine Rolle. – Javier