Уявіть, що у мене цей клас:
public class Test
{
private String[] arr = new String[]{"1","2"};
public String[] getArr()
{
return arr;
}
}
Тепер у мене є ще один клас, який використовує вищевказаний клас:
Test test = new Test();
test.getArr()[0] ="some value!"; //!!!
Отже, це проблема: я отримав доступ до приватного поля класу ззовні! Як я можу запобігти цьому? Я маю на увазі, як я можу зробити цей масив незмінним? Чи означає це, що з кожним методом getter ви можете пропрацювати свій шлях до приватного поля? (Я не хочу, щоб були такі бібліотеки, як Guava. Мені просто потрібно знати правильний спосіб зробити це).
final
робить перешкоджає модифікації поля . Однак запобігання модифікаціїObject
посилається на поле є складнішим.