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

Как сделать иммутабельный класс

Иммутабельный класс — это класс, состояние которого нельзя изменить после создания. Вот ключевые принципы:

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

Пример:

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()); // возвращаем копию
    }
}

Для сложных объектов используйте паттерн Builder. Коллекции следует делать неизменяемыми через Collections.unmodifiableList() и аналоги.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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