Sobes.tech
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:

  1. Declarar la clase como final — para que no se pueda crear una subclase que cambie el comportamiento.
  2. Hacer que todos los campos sean private y final — para que no puedan ser modificados después de la inicialización.
  3. No proporcionar setters (métodos para modificar los campos).
  4. Inicializar todos los campos a través del constructor.
  5. 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.