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:
- Declarar a classe como
final— para que não seja possível criar uma subclasse que altere o comportamento. - Tornar todos os campos
privateefinal— para que não possam ser alterados após a inicialização. - Não fornecer setters (métodos para modificar os campos).
- Inicializar todos os campos através do construtor.
- 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.