Sobes.tech
Назад к вопросам
Junior — Middle
66

Каким образом включить список в DTO, который нельзя изменять после создания?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Чтобы включить в DTO список, который нельзя изменять после создания, можно:

  • Использовать Collections.unmodifiableList для обёртки списка при присвоении в поле.
  • Сделать поле final и инициализировать его в конструкторе.
  • При передаче списка в конструктор создавать копию, чтобы избежать внешних изменений.

Пример:

import java.util.Collections;
import java.util.List;

public class MyDTO {
    private final List<String> items;

    public MyDTO(List<String> items) {
        this.items = Collections.unmodifiableList(new ArrayList<>(items));
    }

    public List<String> getItems() {
        return items;
    }
}

Такой подход гарантирует, что список внутри DTO нельзя изменить извне.