Junior — Middle
Aké princípy je potrebné použiť pri vytváraní triedy v Jave, aby bola nemenná?
sobes.tech AI
Odpoveď od AI
Ak chcete urobiť triedu v Jave nemennou (immutable), je potrebné dodržať niekoľko princípov:
- Vyhláste triedu ako
final— aby sa nedala vytvoriť podtrieda, ktorá by menila správanie. - Urobte všetky polia
privateafinal— aby sa nedali zmeniť po inicializácii. - Neposkytujte setterové metódy (metódy na zmenu polí).
- Inicializujte všetky polia cez konštruktor.
- Ak sú polia odkazmi na meniace sa objekty (napríklad pole, kolekcie), vytvárajte ich kópie pri priradení a pri vrátení z getterov, aby vonkajšie zmeny neovplyvnili vnútorný stav.
Príklad:
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;
}
}
Takáto trieda po vytvorení objektu neumožňuje zmenu jeho stavu, čo je užitočné pre bezpečnosť vlákien a predvídateľnosť správania.