Hi!
Ich frage mich wie man dieses Code-snippet innerhalb einer überschriebenen
equals()-Methode auch mit einer if-Kaskade äquivalent darstellen kann?
Code mit verkürzter Syntax:
Mein Vorschlag für eine if-Kaskaden-Schreibweise:
Kommt das so hin bzw. mach der 2te Code genau das selbe, wie der erste Code?
Lg,
Zrebna
Ich frage mich wie man dieses Code-snippet innerhalb einer überschriebenen
equals()-Methode auch mit einer if-Kaskade äquivalent darstellen kann?
Code mit verkürzter Syntax:
Java:
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Invocation)) return false;
Invocation that = (Invocation) o;
if (getSelf() != null ? !getSelf().equals(that.getSelf()) : that.getSelf() != null) return false;
if (getMethod() != null ? !getMethod().equals(that.getMethod()) : that.getMethod() != null) return false;
return Arrays.deepEquals(getArgs(), that.getArgs());
}
Mein Vorschlag für eine if-Kaskaden-Schreibweise:
Java:
@Override
public boolean equals(Object o) {
if(this == o)
return true;
if(!(o instanceof Invocation))
return false;
Invocation other = (Invocation) o;
if(getSelf() == null && other.getSelf() == null) {
return true;
}
else if (getSelf() != null && getSelf().equals(other.getSelf())) {
return true;
}
else if(!getSelf().equals(other.getSelf())) {
return false;
}
if(getMethod() == null && other.getMethod() == null) {
return true;
}
else if(getMethod() != null) {
return getMethod().equals(other.getMethod());
}
// use Arrays.deepEquals to compare Object[]
return Arrays.deepEquals(getArgs(), other.getArgs());
}
Kommt das so hin bzw. mach der 2te Code genau das selbe, wie der erste Code?
Lg,
Zrebna