ich einen Kollegen sah neu zu schreiben, schreiben sie wie folgt:Wie die Methode equals
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final ImageCode other = (ImageCode) obj;
if ((this.code == null) ? (other.code != null) : !this.code.equals(other.code)) {
return false;
}
return true;
}
Dann schlug ich es für diese Veränderung:
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Parent)){
return false;
}
final ImageCode other = (ImageCode) obj;
if ((this.code == null) ? (other.code != null) : !this.code.equals(other.code)) {
return false;
}
return true;
}
aber er sagte mir, dass es falsch ist, und dass instanceof
nicht für die equals
Methode verwendet werden kann. Ich verstehe nicht, warum er das gesagt hat.
Kann nicht sagen. Haben Sie versucht, Ihre Equals-Überschreibung mit einigen Debug-Zeilen auszuführen? – Hooch
Klasse C erweitert B. Und B erweitert A. Dann Objekt c ist Instanz von C (oder B oder A). Bedeutet nicht, dass c und b (oder a) dieselbe Klasse ist. – waltersu
@ Hooch, @ Waltersu, aber ich habe für die Erweiterung getestet, ich konnte keinen Fehler finden. – lucare