Es schien, als hätte ich die Methoden equals und hashCode hinzufügen sollen, damit ich sie mit der Bibliothek org.apache.commons
kürzen konnte.
Hoge.java
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
~~Kürzung~~
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
Wenn Sie Gradle verwenden, siehe unten.
build.gradle
// https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
Da es sich nur um einen alten Artikel handelte, habe ich andere Dinge nachgeschlagen und es schien, dass die folgenden Dinge realisiert werden konnten.
Hoge.java
@Override
public int hashCode(){
return Objects.hash(name, length, children);
}
@Override
public boolean equals(final Object obj){
if(obj instanceof Bean){
final Bean other = (Bean) obj;
return Objects.equals(name, other.name)
&& length == other.length // special handling for primitives
&& Objects.equals(children, other.children);
} else{
return false;
}
}
Objekte
wurde durch die Nullprüfung überprüft, aber ich wusste nicht, dass es eine solche Methode gibt.
Ich denke, es könnte automatisch von Eclipse gemacht werden, aber ich persönlich denke, dass es in Ordnung ist, wenn es funktioniert.
Recommended Posts