Встречается на собеседованиях • сегодня
Как сделать объект неизменяемым после создания
В Java можно создать неизменяемый объект несколькими способами:
1. **final класс и поля**:
```java
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; }
}
```
2. **Защита от изменений в коллекциях**:
Для коллекций используйте `Collections.unmodifiableList()` или аналоги:
```java
private final List hobbies = Collections.unmodifiableList(new ArrayList<>(hobbiesList));
```
3. **Глубокое копирование**: Если объект содержит изменяемые поля (например, Date), возвращайте копии:
```java
public Date getBirthDate() { return new Date(birthDate.getTime()); }
```
4. **Не предоставлять сеттеры**
Ключевые принципы:
- Все поля `final`
- Нет методов, изменяющих состояние
- Защита изменяемых полей (коллекции, массивы)
- Глубокое копирование при возврате изменяемых объектов

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы