Я не уверен, как на самом деле работает создание мелкой копии в методах получения и как это нам поможет.
Работает ли оно как обычный метод получения, поскольку я могу получать информацию из этого списка всякий раз, когда я вызываюметод получения?
Я беспокоюсь об этом, потому что в будущем, если я вызову this.strings
и this.getStrings()
, они приведут к различным выводам, которые будут проблемой.
И я предполагаю, что здесь есть неявный вопрос,
Я уже некоторое время размышлял над этим:
Как и в примере ниже, некоторые люди просто звонили бы strings
получить информацию из этого списка (так как в этом случае она является конфиденциальной, поэтому я полагаю, что она будет работать нормально?), где другие будут звонить this.strings
или this.getStrings
.
Я новичок в Java, поэтому все они, похоже, способны достичь того же результата, что меня так смущает.
Может кто-нибудь объяснить?Извините, если формулировка не ясна.
Код указан ниже:
import java.util.ArrayList;
import java.util.List;
public class Experiment {
private List<String> strings;
public Experiment(String string) {
this.strings = new ArrayList<>();
}
public List<String> getStrings() {
return strings;
}
}
Некоторые программисты этого не делаютреализовать:
public List<String> getStrings() {
return strings;
}
Вместо этого они делают:
public List<String> getStrings() {
return new ArrayList<>(strings);
}