Sobes.tech
Junior — Middle

Que princípios devem ser usados ao criar uma classe em Java para torná-la imutável?

sobes.tech IA

Resposta da IA

Para tornar uma classe em Java imutável, deve-se seguir vários princípios:

  1. Declarar a classe como final — para que não seja possível criar uma subclasse que altere o comportamento.
  2. Tornar todos os campos private e final — para que não possam ser alterados após a inicialização.
  3. Não fornecer setters (métodos para modificar os campos).
  4. Inicializar todos os campos através do construtor.
  5. Se os campos forem referências a objetos modificáveis (por exemplo, arrays, coleções), criar cópias deles ao atribuir e ao retornar dos getters, para que mudanças externas não afetem o estado interno.

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, o que é útil para segurança em threads e previsibilidade do comportamento.