Bayangkan saya memiliki kelas ini:
public class Test
{
private String[] arr = new String[]{"1","2"};
public String[] getArr()
{
return arr;
}
}
Sekarang, saya memiliki kelas lain yang menggunakan kelas di atas:
Test test = new Test();
test.getArr()[0] ="some value!"; //!!!
Jadi ini masalahnya: Saya telah mengakses bidang pribadi kelas dari luar! Bagaimana saya bisa mencegah ini? Maksud saya, bagaimana saya bisa membuat array ini tidak berubah? Apakah ini berarti bahwa dengan setiap metode pengambil Anda dapat bekerja dengan cara Anda untuk mengakses bidang pribadi? (Saya tidak ingin ada perpustakaan seperti Guava. Saya hanya perlu tahu cara yang tepat untuk melakukan ini).
final
memang mencegah modifikasi lapangan . Namun, mencegah modifikasi yangObject
dimaksud oleh suatu bidang lebih rumit.