Junior — Middle
Quels principes doivent être utilisés lors de la création d'une classe en Java pour la rendre immuable?
sobes.tech IA
Réponse de l'IA
Pour rendre une classe en Java immuable, il faut suivre plusieurs principes:
- Déclarer la classe comme
final— pour empêcher la création d'une sous-classe qui modifierait le comportement. - Rendre tous les champs
privateetfinal— pour qu'ils ne puissent pas être modifiés après l'initialisation. - Ne pas fournir de setters (méthodes pour modifier les champs).
- Initialiser tous les champs via le constructeur.
- Si les champs sont des références à des objets modifiables (par exemple, tableaux, collections), créer des copies lors de l'assignation et lors du retour dans les getters, pour que les modifications externes n'affectent pas l'état interne.
Exemple:
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;
}
}
Ce type de classe, après la création de l'objet, ne permet pas de changer son état, ce qui est utile pour la sécurité des threads et la prévisibilité du comportement.