public boolean equals( Object other ) { return name.equals( other.getName() ); }
Hier gibt es einen Fehler
getName()
ist keine Methode von Object
.
Ihr mögt Euch fragen warum die Methode nicht so geschrieben wurde:
public boolean equals( Entry other ) { return name.equals( other.getName() ); }
Das ist eine korrekte Methode, aber sie überschreibt nicht die Methode equals(Object)
. Die Typen der Parameter stimmen nicht überein. Um indexOf()
zu verwenden, muss die Methode equals(Object)
überschreiben:
int indexOf(Object element) // Suche nach dem ersten Vorkommen von //element
, Prüfung auf Gleichheit // mit der Methode equals(Object) vonelement
.
Wird das Folgende funktionieren für equals(Object)
?
class Entry { . . . . . public boolean equals( Object other ) { return getName().equals( ((Entry)other).getName() ); } . . . . . }