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

Каким образом можно обеспечить неизменяемость списка, являющегося полем класса?

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

sobes.tech AI

Чтобы обеспечить неизменяемость списка, являющегося полем класса в Java, можно:

  • Использовать Collections.unmodifiableList() для обёртки изменяемого списка, чтобы внешние пользователи не могли его изменить.
  • Инициализировать поле списком, который сам по себе неизменяем, например, через List.of() (Java 9+).
  • Сделать поле private final и не предоставлять методов, которые изменяют список.

Пример:

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

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

    public MyClass(List<String> input) {
        this.items = Collections.unmodifiableList(input);
    }

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

Таким образом, внешний код не сможет изменить содержимое списка через поле класса.