Je pensais que j'aurais dû ajouter les méthodes equals et hashCode, donc je pourrais le raccourcir en utilisant la bibliothèque de ʻorg.apache.commons`.
Hoge.java
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
~~réduction~~
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
Si vous utilisez gradle, voir ci-dessous.
build.gradle
// https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
Comme ce n'était qu'un vieil article, j'ai recherché d'autres choses et il semblait que les choses suivantes pouvaient être réalisées.
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;
}
}
ʻObjects` a été pris en charge par la vérification de null, mais je ne savais pas qu'il y avait une telle méthode.
Je pense que cela pourrait être fait automatiquement par Eclipse, mais je pense personnellement que c'est bien si cela fonctionne.