Sobes.tech
Junior — Middle

Como pode uma classe ser implementada para que o seu estado seja imutável após a criação?

sobes.tech IA

Resposta da IA

Para criar uma classe imutável em Java, deve-se:

  • Tornar a classe final para que não possa ser herdada nem alterar o comportamento.
  • Declarar todos os campos da classe como private final.
  • Inicializar todos os campos através do construtor.
  • Não fornecer setters (métodos para modificar os campos).
  • Se os campos forem objetos mutáveis (por exemplo, arrays, coleções), criar cópias deles ao passá-los ao construtor e ao retorná-los pelos getters.

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 tipo de classe, após criar o objeto, não permite alterar seu estado.