Erstellen Sie mit JAVA eine unveränderliche Klasse

Was ist unveränderlich

Unveränderlich bedeutet ** unveränderlich **. Mit anderen Worten, eine unveränderliche Klasse ist eine Klasse, deren Instanzinhalt sich nicht ändert (= kann nicht umgeschrieben werden). Das Umschreiben einer unveränderlichen Klasse bedeutet das Neuerstellen einer Instanz (seien Sie vorsichtig, wenn Sie sie verwenden, da sich alte Instanzen ansammeln und die Verarbeitungsgeschwindigkeit verlangsamt, wenn Instanzen während der iterativen Verarbeitung mehrmals erstellt werden. Ich muss). Bei Verwendung einer unveränderlichen Klasse muss überprüft werden, ob der Inhalt geändert wurde und ob der Referenztypwert verwendet wird.

Vorteile von unveränderlichen

Da sich der Status unveränderlicher Objekte ab dem Zeitpunkt der Erstellung nicht ändert, müssen Sie sich keine Sorgen machen, dass sich der Wert während der Verarbeitung in unbeabsichtigter Form ändert. Eine typische unveränderliche Klasse ist die String-Klasse.

Bedingungen zum Zeitpunkt der Erstellung

Um eine unveränderliche Klasse zu erstellen, müssen die folgenden vier Bedingungen erfüllt sein.

** 1. Deklariere die Klasse als endgültig **

** 2. Machen Sie alle Felder endgültig und privat ** Deklarieren Sie die Klasse als final oder machen Sie den Konstruktor privat und instanziieren Sie ihn mit einer Factory-Methode

** 3. Setter nicht definieren ** Deklarieren Sie die Klasse als final oder machen Sie den Konstruktor privat und instanziieren Sie ihn mit einer Factory-Methode

** 4. Das Feld enthält keinen Verweis auf ein mmutable-Objekt **

Fruits.java


public final class Fruits {
    private final String color;
    private final int amount;

    public Fruits(String name, String, int age) {
        this.name = color;
        this.age = amount;
    }

    public String getColor() {
        return color;
    }

    public int getAmount() {
        return amount;
    }
}

Der Versuch, eine Änderung vorzunehmen, führt zu einem Fehler.

FruitsTest.java


@Test
public void fruitsTest() {
    final Person Fruits = new Fruits("Red", 28);
    // error
    // fruits.setColor("yellow");
    // fruits.amount(30);
}

Recommended Posts

Erstellen Sie mit JAVA eine unveränderliche Klasse
[Java] Erstellen Sie mit Gradle ein ausführbares Modul
Erstellen Sie eine App mit Spring Boot 2
Erstellen Sie eine Excel-Datei mit poi
Erstellen Sie eine App mit Spring Boot
Führen Sie in Java8 geschriebene Anwendungen in Java6 aus
Ich kann in IntelliJ keine Java-Klasse mit einem bestimmten Namen erstellen
Lassen Sie uns eine Instanz mit .new selbst erstellen. .. ..
Erstellen Sie eine temporäre Klasse mit new Object () {}
Erstellen Sie Java-Anwendungen mit IBM Cloud-Funktionen
[Java] Ermitteln Sie das Datum mit der LocalDateTime-Klasse
Java-Klassenmethoden
[Java] Klassenvererbung
Java-Scanner-Klasse
Java HashMap-Klasse
Java (abstrakte Klasse)
[Java] Verschachtelte Klasse
Anonyme Java-Klasse
Über die Java-Klasse
[Java] Abstrakte Klasse
[Java] Objektklasse
Lokale Java-Klasse
Erstellen Sie eine CSR mit erweiterten Informationen in Java
Erstellen Sie mit Java + MySQL ein einfaches Bulletin Board
[Windows] [IntelliJ] [Java] [Tomcat] Erstellen Sie mit IntelliJ eine Umgebung für Tomcat 9
Lassen Sie uns mit Javas Timer einen zeitgesteuerten Prozess erstellen! !!
Erstellen Sie eine JSON-API, die die RSA-Verschlüsselung mit Wicket unterstützt
[Java] Erstellen Sie eine Sammlung mit nur einem Element
Erstellen Sie eine E2E-Testumgebung mit Selenium (Java).
[Java] Finden Sie die Primzahl mit dem Eratostenes-Sieb
Erstellen Sie eine EC-Site mit Rails5 ⑤ ~ Kundenmodell ~
Erstellen Sie einen Annotator, der Kuromoji mit NLP4J verwendet. [007]
Erstellen Sie eine EC-Site mit Rails 5 ⑩ ~ Erstellen Sie eine Bestellfunktion ~
Erstellen Sie eine ARM-CPU-Umgebung mit qemu auf dem Mac und führen Sie Java aus [Ergebnis → Fehler]
Installieren Sie Java mit Homebrew
[Java] Sortieren Sie ArrayList nach Elementen Ihrer eigenen Klasse
Versuchen Sie es mit Trailblazer
Über die Klassenteilung (Java)
[Java] Finde die Primzahl mit dem Eratostenes-Sieb (Teil 2)
Informationen zur Java StringBuilder-Klasse
Wechseln Sie die Plätze mit Java
Installieren Sie Java mit Ansible
Erstellen Sie einen HTTPS-Dateiserver für die Entwicklung mit dem Ring-Jetty-Adapter
Erstellen Sie eine EC-Site mit Rails5 Address ~ Adresse, Genre-Modell ~
[Java] Erstellen Sie einen Filter
Erstellen einer EC-Site mit Rails 5 ⑨ ~ Erstellen einer Warenkorbfunktion ~
[Java] Über Singleton Class
[Java] Wirf eine Ausnahme aus
[Anfänger] Erstellen Sie ein wettbewerbsfähiges Spiel mit grundlegenden Java-Kenntnissen
Erstellen Sie eine EC-Site mit Rails5 ④ ~ Kopf- und Fußzeile ~
Bequemer Download mit JAVA
Erstellen Sie mit Docker x Cypress eine E2E-Testumgebung
Überprüfung der Java-Innenklasse
Schalten Sie Java mit direnv
Erstellen Sie eine EC-Site mit Rails5 seed ~ Startdateneingabe ~
[Java] Holen Sie sich das Datum 10 Tage später mit der Calendar-Klasse
Feld für den Java-Klassentyp