Junior — Middle
¿Qué principios se deben usar al crear una clase en Java para hacerla inmutable?
sobes.tech AI
Respuesta de la IA
Para hacer una clase en Java inmutable, se deben seguir varios principios:
- Declarar la clase como
final— para que no se pueda crear una subclase que cambie el comportamiento. - Hacer que todos los campos sean
privateyfinal— para que no puedan ser modificados después de la inicialización. - No proporcionar setters (métodos para modificar los campos).
- Inicializar todos los campos a través del constructor.
- Si los campos son referencias a objetos modificables (por ejemplo, arreglos, colecciones), crear copias de ellos al asignarlos y al devolver desde los getters, para que los cambios externos no afecten el estado interno.
Ejemplo:
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 clase, después de crear un objeto, no permite cambiar su estado, lo cual es útil para la seguridad en hilos y la previsibilidad del comportamiento.