Встречается на собеседованиях • сегодня

Как достичь иммутабельность класса

Иммутабельность класса достигается следующими шагами:

  1. Объяви класс как final, чтобы предотвратить наследование.
  2. Сделай все поля private и final.
  3. Не предоставляй сеттеров для изменения полей.
  4. Инициализируй поля только через конструктор.
  5. Для mutable полей (например, Date, коллекции) возвращай копии в геттерах и сохраняй копии в конструкторе.

Пример:

java
public final class ImmutablePerson {
    private final String name;
    private final Date birthDate;

    public ImmutablePerson(String name, Date birthDate) {
        this.name = name;
        this.birthDate = new Date(birthDate.getTime()); // защитная копия
    }

    public String getName() {
        return name;
    }

    public Date getBirthDate() {
        return new Date(birthDate.getTime()); // возвращаем копию
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы