Junior — Middle
Kokius principus reikia naudoti kuriant klasę Java kalboje, kad ji būtų nekintama?
sobes.tech AI
Atsakymas iš AI
Kad Java klasė būtų nekintama (immutable), reikia laikytis kelių principų:
- Deklaruokite klasę kaip
final— kad negalima būtų sukurti pogrupio, kuris pakeistų elgesį. - Padarykite visus laukus
privateirfinal— kad jie negalėtų būti pakeisti po inicializacijos. - Nenaudokite setter'ių (metodų, kurie keičia laukus).
- Inicializuokite visus laukus per konstruktorių.
- Jei laukų nuorodos yra į keičiamus objektus (pvz., masyvus, kolekcijas), kurkite jų kopijas priskyrimo ir grąžinimo metu, kad išoriniai pakeitimai nepaveiktų vidinės būsenos.
Pavyzdys:
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;
}
}
Tokios klasės po objekto sukūrimo neleidžia keisti jos būsenos, kas yra naudinga dėl sriečių saugumo ir elgesio prognozuojamumo.