[java] Ce que j'ai fait en comparant des listes dans ma propre classe

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.

Recommended Posts

[java] Ce que j'ai fait en comparant des listes dans ma propre classe
J'ai été piégé lorsque j'ai généré mes propres égaux de classe et hashCode en Java à l'aide de l'IDE
Ce que j'ai fait lorsque j'ai converti Java en Kotlin
[Java Spring MVC] Je souhaite utiliser DI dans ma propre classe
Ce que j'ai appris lors de la création d'un serveur en Java
À propos de ce que j'ai fait lors de la création d'un fichier .clj avec Clojure
Qu'est-ce qu'une classe en langage Java (3 /?)
Qu'est-ce qu'une classe en langage Java (1 /?)
Qu'est-ce qu'une classe en langage Java (2 /?)
J'ai fait l'étalonnage de la caméra OpenCV en Java
Ce que j'ai fait lorsque JSF ne pouvait pas afficher les informations de la base de données dans la vue
Appel de méthode Java depuis RPG (appel de méthode dans sa propre classe)
Ce que j'ai appris en Java (partie 2) Que sont les variables?
À quoi me suis-je préparé lorsque je suis entré dans un projet de développement d'application Android tout en développant le Web avec Java?
Ce que j'ai appris en Java (partie 3) Déclaration d'exécution des instructions
Comparer des listes en Java
J'ai essayé de découvrir ce qui avait changé dans Java 9
[Paiza] J'ai créé mon propre utilitaire pour répondre aux questions [Java]
Ce que j'ai appris en Java (partie 4) Branchement conditionnel et répétition
IntelliJ gradle 2.2 → 2.6 Ce que j'ai fait lorsque je suis tombé sur la migration de l'environnement
J'ai essayé de résumer l'orientation de l'objet à ma manière.
Ce que j'ai recherché sur Java 8
Ce que j'ai recherché sur Java 6
J'ai fait une roulette à Java.
Ce que j'ai recherché sur Java 9
Ce que j'ai recherché sur Java 7
[Java] Qu'est-ce que l'héritage de classe?
[Notions de base Java] Qu'est-ce que la classe?
J'ai essayé la métaprogrammation avec Java
Ce que j'ai recherché sur Java 5
Je veux juger de la nécessité de tester en comparant les différences des fichiers de classe lors de la refactorisation de Java.
Ce que j'ai appris en Java (partie 1) Flux de développement Java et présentation
Je ne peux pas créer une classe Java avec un nom spécifique dans IntelliJ
Erreur de non-recherche du symbole lors de la nouvelle classe dans un autre fichier Java
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java)
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java) (1)
Ce que j'ai fait lorsque la base de données n'a pas démarré avec docker-compose up
Ce que j'ai fait lors de la migration de la série Spring Boot 1.4 vers la série 2.0
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java) (3)
Ce que j'ai fait lors de la migration de la série Spring Boot 1.5 vers la série 2.0
Ce que je fais souvent quand j'ai du mal à nommer avec Java (etc.)
Ce à quoi j'ai pensé lorsque j'ai commencé à migrer de Java vers Kotlin
Ce que je n'aime pas lors de l'utilisation de l'interface d'une fonction avec des arguments par défaut dans Kotlin depuis Java
Ce que j'ai vérifié lorsque j'ai installé Docker Hub dans un environnement domestique Windows 10 mais qu'il n'a pas démarré
J'ai envoyé un e-mail en Java
J'ai créé un PDF avec Java.
Gérez vos propres annotations en Java
J'ai écrit le théorème de Gordobach en java
Classe StringBuffer et StringBuilder en Java
[Java] Ce qui est resté bloqué dans l'encapsulation
Ce que j'ai appris avec Java Gold
J'ai fait une annotation en Java.
J'ai essayé d'utiliser JWT en Java
Ce que j'ai appris avec Java Silver
Ce que j'ai recherché sur l'apprentissage Java
Ce que j'ai pensé en passant la valeur d'entrée de l'utilisateur à la classe Service
Lors de la mise à jour de ma propre application, j'ai sérieusement réfléchi à la structure du package