[java] Was ich getan habe, als ich Listen in meiner eigenen Klasse verglichen habe

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

[java] Was ich getan habe, als ich Listen in meiner eigenen Klasse verglichen habe
Ich steckte in einer Falle fest, als ich meine eigenen Klassen equals und hashCode in Java mit IDE generierte
Was ich getan habe, als ich Java zu Kotlin konvertiert habe
[Java Spring MVC] Ich möchte DI in meiner eigenen Klasse verwenden
Was ich beim Erstellen eines Servers in Java gelernt habe
Über das, was ich beim Erstellen einer CLJ-Datei mit Clojure getan habe
Was ist eine Klasse in der Java-Sprache (3 /?)
Was ist eine Klasse in der Java-Sprache (1 /?)
Was ist eine Klasse in der Java-Sprache (2 /?)
Ich habe die OpenCV-Kamerakalibrierung in Java durchgeführt
Was ich getan habe, als JSF keine Datenbankinformationen in der Ansicht anzeigen konnte
Java-Methodenaufruf von RPG (Methodenaufruf in eigener Klasse)
Was ich in Java gelernt habe (Teil 2) Was sind Variablen?
Worauf habe ich mich vorbereitet, als ich während der Entwicklung des Web mit Java in ein Android-Anwendungsentwicklungsprojekt eingetreten bin?
Was ich in Java gelernt habe (Teil 3) Anweisung zur Ausführung von Anweisungen
Listen in Java vergleichen
Ich habe versucht herauszufinden, was sich in Java 9 geändert hat
[Paiza] Ich habe mein eigenes Dienstprogramm zum Beantworten von Fragen erstellt. [Java]
Was ich in Java gelernt habe (Teil 4) Bedingte Verzweigung und Wiederholung
IntelliJ gradle 2.2 → 2.6 Was ich getan habe, als ich über die Umgebungsmigration gestolpert bin
Ich habe versucht, die Objektorientierung auf meine Weise zusammenzufassen.
Was ich über Java 8 recherchiert habe
Was ich über Java 6 recherchiert habe
Ich habe ein Roulette in Java gemacht.
Was ich über Java 9 recherchiert habe
Was ich über Java 7 recherchiert habe
[Java] Was ist Klassenvererbung?
[Java-Grundlagen] Was ist Klasse?
Ich habe versucht, Metaprogrammierung mit Java
Was ich über Java 5 recherchiert habe
Ich möchte die Notwendigkeit des Testens beurteilen, indem ich die Unterschiede der Klassendateien beim Refactoring von Java vergleiche.
Was ich in Java gelernt habe (Teil 1) Java-Entwicklungsablauf und Überblick
Ich kann in IntelliJ keine Java-Klasse mit einem bestimmten Namen erstellen
Fehler beim Finden des Symbols bei neuer Klasse in einer anderen Java-Datei
[Anmerkung] Was ich in einem halben Jahr von unerfahrenen (Java) gelernt habe
[Anmerkung] Was ich in einem halben Jahr von unerfahrenen (Java) gelernt habe (1)
Was ich getan habe, als die DB nicht mit Docker-Compose gestartet wurde
Was ich bei der Migration von der Spring Boot 1.4-Serie zur 2.0-Serie getan habe
[Anmerkung] Was ich in einem halben Jahr von unerfahrenen (Java) gelernt habe (3)
Was ich bei der Migration von der Spring Boot 1.5-Serie zur 2.0-Serie getan habe
Was ich oft mache, wenn ich Probleme beim Benennen mit Java habe (etc.)
Woran ich dachte, als ich anfing, von Java nach Kotlin zu migrieren
Was mir bei der Verwendung der Schnittstelle einer Funktion mit Standardargumenten in Kotlin aus Java nicht gefällt
Was ich überprüft habe, als ich Docker Hub in einer Windows 10-Heimumgebung installiert habe, aber nicht gestartet wurde
Ich habe eine E-Mail in Java gesendet
Ich habe ein PDF mit Java erstellt.
Behandeln Sie Ihre eigenen Anmerkungen in Java
Ich habe Gordobachs Theorem in Java geschrieben
StringBuffer- und StringBuilder-Klasse in Java
[Java] Was in der Kapselung stecken geblieben ist
Was ich mit Java Gold gelernt habe
Ich habe eine Anmerkung in Java gemacht.
Ich habe versucht, JWT in Java zu verwenden
Was ich mit Java Silver gelernt habe
Was ich über Java-Lernen recherchiert habe
Was ich dachte, als ich den Eingabewert des Benutzers an die Service-Klasse übergab
Beim Aktualisieren meiner eigenen App habe ich ernsthaft über die Paketstruktur nachgedacht