Sobes.tech
Junior — Middle

Welche Aspekte sind bei der Erstellung einer Kopie eines Objekts einer unveränderlichen Klasse zu beachten?

sobes.tech KI

Antwort von AI

Für eine unveränderliche Klasse erfordert das Erstellen einer Kopie des Objekts in der Regel kein tiefes Klonen, da sich der Zustand des Objekts nach der Erstellung nicht ändert.

Hauptaspekte:

  • Wenn die Klasse wirklich unveränderlich ist, kann einfach die Referenz auf dasselbe Objekt zurückgegeben werden, da es sich nicht ändert.
  • Wenn ein neues Objekt mit geändertem Zustand erstellt werden soll, wird in der Regel eine neue Instanz mit den erforderlichen Parametern erstellt.
  • Es ist wichtig, dass alle Felder final sind und selbst unveränderlich (z.B. String, Primitive oder unveränderliche Sammlungen).

Beispiel:

public final class ImmutablePoint {
    private final int x;
    private final int y;

    public ImmutablePoint(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public ImmutablePoint copy() {
        // Kann einfach this zurückgeben, da das Objekt unveränderlich ist
        return this;
    }

    public ImmutablePoint withX(int newX) {
        return new ImmutablePoint(newX, this.y);
    }
}

Daher ist eine Kopie eines unveränderlichen Objekts entweder nicht notwendig oder wird als neues Objekt mit neuem Zustand erstellt.