Sobes.tech
Junior — Middle

Hogyan lehet listát beilleszteni egy DTO-ba, amit nem lehet módosítani a létrehozás után?

sobes.tech MI

Válasz az MI-től

Чтобы включить в 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 нельзя изменить извне.