2016-06-13 4 views
0

Ich habe eine einfache Frage für eine Klasse, die ich schreibe genannt AssassinNodeData. Ich versuche eine einfache equals() -Methode zu schreiben. Ich möchte in der Lage sein zu überprüfen, ob der Objekt-Parameter ein AssassinNodeData-Objekt ist und das Spieler-Feld dieses Objekts eine Übereinstimmung der Groß- und Kleinschreibung mit dem Spieler-Feld des Parameters ist.Object und Parameter Test

Das ist wenig von dem, was ich bisher:

public boolean equals(Object data) { 
    AssassinNodeData other = (AssassinNodeData) data; 
    if (!(data instanceof AssassinNodeData) && !other.getPlayer().equalsIgnoreCase(player)) 
     if (!(data instanceof String) && !other.getPlayer().equalsIgnoreCase(player)) 
      return false; 
    return true; 
} 

Irgendwelche Vorschläge sehr geschätzt würde!

+0

Nun, Ihre Beschreibung spricht über einen 'Object' Parameter, aber bisher hat Ihre Methode nur einen' String' Parameter ... –

+0

@JonSkeet Aah Ich sehe - also sollte ich den Parameter ändern, den ich an Object übergeben anstelle der Schnur? Ich habe den Code in der Beschreibung der Frage aktualisiert. – Ani

+0

Nun, Sie haben den Code aktualisiert, so dass es jetzt vom Typ 'AssassinNodeData' ist, was immer noch nicht das ist, was Sie beschrieben haben ... –

Antwort

0

equals Methode nicht static sein sollte, der richtige Weg, es zu erklären ist:

public boolean equals(Object obj) { 

Und hier müssen Sie den Code, Beispiel:

if (!(obj instanceof AssassinNodeData)) { 
     return false; 
    } 
    AssassinNodeData other = (AssassinNodeData) obj; 
    return other.getPlayer.equals(player); 

Wie wir Ihnen erste Überprüfung angezeigt Wenn das Objekt eine korrekte Klasse ist, wird es später in die Klasse umgewandelt, die wir erwarten. Danach erhalten Sie nur Felder von der anderen und vergleichen sie mit aktuellen Objekten Felder.

+0

Danke! Lassen Sie mich versuchen zu sehen, ob das funktionieren würde ... – Ani

+0

Ich habe die ganze Klasse aktualisiert und das ist, was kam - Kommentare, Vorschläge? – Ani

Verwandte Themen