Sobes.tech
Junior — Middle

Como tornar um objeto de classe imutável após a sua criação?

sobes.tech IA

Resposta da IA

Para tornar um objeto de classe em Java imutável, deve-se:

  • Declarar a classe como final, para que não possa ser herdada nem alterar o comportamento.
  • Tornar todos os campos privados e finais, para que não possam ser alterados após a inicialização.
  • Não fornecer setters para os campos.
  • Inicializar todos os campos através do construtor.
  • Se os campos forem objetos mutáveis (por exemplo, coleções), criar cópias deles ao atribuir e ao retornar através dos getters, para evitar alterações externas.

Exemplo:

public final class ImmutablePerson {
    private final String name;
    private final int age;

    public ImmutablePerson(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

Este objeto não pode ser alterado após a criação.