Sobes.tech
Junior — Middle

Como garantir a imutabilidade de uma lista que é um campo de uma classe?

sobes.tech IA

Resposta da IA

Чтобы обеспечить неизменяемость списка, являющегося полем класса в 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;
    }
}

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