Sobes.tech
Junior — Middle

Kā nodrošināt, lai getter ar atgrieztu masīvu nevar mainīt no ārpuses?

sobes.tech AI

Atbilde no AI

Lai nodrošinātu, ka masīvs, ko atgriež getter, nevar mainīt no ārpuses, ir jāatgriež tā kopija, nevis iekšējais masīvs. Pretējā gadījumā ārējais kods saņems atsauci uz to pašu masīvu un varēs to mainīt.

Piemērs:

public class MyClass {
    private int[] data;

    public MyClass(int[] data) {
        this.data = data.clone(); // kopēšana, saglabājot
    }

    public int[] getData() {
        return data.clone(); // atgriež kopiju, lai aizsargātu iekšējo stāvokli
    }
}

Šī pieeja nodrošina, ka izmaiņas masīvā, kas iegūts caur getter, neietekmēs objekta iekšējo stāvokli.