Sobes.tech
Junior — Middle

Какви принципи трябва да се използват при създаването на клас в Java, за да стане той неизменяем?

sobes.tech AI

Отговор от AI

За да направите клас в Java неизменяем (immutable), трябва да спазвате няколко принципа:

  1. Декларирайте класа като final — за да не може да се създаде подклас, който променя поведението.
  2. Направете всички полета private и final — за да не могат да бъдат променяни след инициализация.
  3. Не предоставяйте сетъри (методи за промяна на полетата).
  4. Инициализирайте всички полета чрез конструктора.
  5. Ако полетата са референции към променяеми обекти (например масиви, колекции), създавайте им копия при присвояване и при връщане от гетърите, за да не влияят външните промени върху вътрешното състояние.

Пример:

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;
    }
}

Такъв клас след създаването на обекта не позволява да се промени състоянието му, което е полезно за безопасност на нишките и предсказуемост на поведението.