Sobes.tech
Junior — Middle

Jaké principy je třeba používat při vytváření třídy v Java, aby byla neměnná?

sobes.tech AI

Odpověď od AI

Chcete-li v Java vytvořit neměnnou třídu (immutable), je třeba dodržovat několik zásad:

  1. Deklarujte třídu jako final — aby nem bylo možné vytvořit podtřídu, která by změnila chování.
  2. Uveďte všechna pole jako private a final — aby je nebylo možné po inicializaci změnit.
  3. Neposkytujte setterové metody (metody pro změnu polí).
  4. Inicializujte všechna pole prostřednictvím konstruktoru.
  5. Pokud jsou pole odkazy na měnitelné objekty (například pole, kolekce), vytvářejte jejich kopie při přiřazení a při vrácení z getterů, aby vnější změny neovlivnily vnitřní stav.

Příklad:

public final class ImmutablePerson {
    private final String name;
    private final int age;

    public ImmutablePerson(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

Taková třída po vytvoření objektu neumožňuje změnu jeho stavu, což je užitečné pro bezpečnost vláken a předvídatelnost chování.