Найти тему
DEBAGanov

Java 17. Как сделать immutable object?

В Java вы можете сделать объект неизменяемым (immutable), задав его поля как final. Неизменяемый объект - это объект, который не может быть изменен после своего создания. Это обычно рекомендуется для создания объектов, которые должны оставаться постоянными во время жизни программы, такие как уникальные идентификаторы или настройки приложения.

Вот пример класса Person, который является неизменяемым:

public final class Person {
private final String name;
private final Date birthDate;

public Person(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());
}
}

В этом примере оба поля name и birthDate помечены как final, что делает их неизменяемыми. Конструктор класса создает новый объект Person с заданными именем и датой рождения. Обратите внимание, что для даты рождения создается новый объект Date, чтобы можно было избежать ее изменения после создания объекта Person.

В целом, чтобы сделать объект неизменяемым, все его поля должны быть объявлены как final и не должны иметь сеттеры для изменения значений после создания объекта.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov