Middle
41
questionbank

Как написать неизменяемый класс в Java?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

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

  1. Сделать класс final, чтобы его нельзя было унаследовать и изменить поведение.
  2. Сделать все поля класса private и final, чтобы их нельзя было изменить после инициализации объекта.
  3. Не предоставлять методов-сеттеров (setters).
  4. Если класс содержит изменяемые поля (например, List или Date), в геттерах нужно возвращать их копии, а не ссылки на оригинальные объекты. В конструкторе также принимать копии изменяемых объектов.
  5. Переопределить методы equals() и hashCode(), если это необходимо для корректного сравнения объектов и работы с коллекциями.

Пример:

java

Такой класс гарантирует, что после создания объекта его состояние (значения полей) не может быть изменено. Это дает преимущества в многопоточности, безопасности и упрощает разработку.