Как сделать класс immutable java — Q&A Хекслет
2026-02-26 22:28 Diff

Ответы

Для того чтобы сделать класс immutable в Java, нужно выполнить следующие шаги:

  1. Сделать все поля класса final. Это запретит изменение значений этих полей после создания объекта.
  2. Удалить все сеттеры для полей класса.
  3. Если класс содержит изменяемые объекты, то следует создать копии этих объектов в конструкторе и вернуть их через геттеры. Это защитит от изменения объектов извне.
  4. При создании объекта необходимо инициализировать все поля. Это можно сделать через конструктор, или же если все поля имеют значения по умолчанию, то можно использовать блок инициализации.
  5. Не допускайте наследования от вашего класса. Можно либо объявить класс final, либо сделать все его конструкторы приватными, чтобы нельзя было создать наследников.

Пример:

  • В данном примере класс содержит три поля: id, name и numbers. Все они помечены как final.
  • В конструкторе происходит копирование объекта numbers, чтобы сохранить его неизменным.
  • Геттеры возвращают копии полей для предотвращения изменения объекта извне.
  • Класс объявлен как final, чтобы запретить наследование от него.