Ich habe eine Klasse mit 2 Feldern erstellt. Ein Double und eine Line2D. Ich möchte die Methode equals außer Kraft zu setzen, so dass der folgende Code return trueÜberschreiben von Hashcode und equals für benutzerdefinierte Klasse
public class Main {
public static void main(String[] args) {
StatusLinePair slp1 = new StatusLinePair(25.0, new Line2D.Double(123.0, 32.0, 342.0, 54.0));
StatusLinePair slp2 = new StatusLinePair(25.0, new Line2D.Double(123.0, 32.0, 342.0, 54.0));
System.out.println(slp1.equals(slp2));
}
}
Dies ist, was ich versucht habe, aber ich bin immer noch nicht immer die gewünschten Ergebnisse
public class StatusLinePair {
public Double yAxisOrder;
public Line2D line;
public StatusLinePair(Double yAxisOrder, Line2D line) {
this.yAxisOrder = yAxisOrder;
this.line = line;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((line == null) ? 0 : line.hashCode());
result = prime * result + ((yAxisOrder == null) ? 0 : yAxisOrder.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
StatusLinePair other = (StatusLinePair) obj;
if (this.yAxisOrder == other.yAxisOrder && this.line.getX1() == other.line.getX1()
&& this.line.getX2() == other.line.getX2() && this.line.getY1() == other.line.getY1()
&& this.line.getY2() == other.line.getY2())
return true;
return false;
}
}
Bitte helfen Sie mir. Danke im Voraus!
was ist Ihre Frage? – Andrew
Was ist das Problem? Du hast keine Frage gestellt. Ich schlage vor, die folgenden Themen zu lesen und erneut zu fragen, ob Probleme auftreten: siehe [hier] (http://stackoverflow.com/questions/2265503/why-do-i-need-to-override-the-equals-and- hashcode-methods-in-java) und [hier] (http://stackoverflow.com/questions/2265503/why-do-i-need-to-override-the-equals-and-hashcode-methods-in-java). – RK1