방어적 복사에 대해서 설명
public class Lotto {
private final List<LottoNumber> numbers;
public Lotto(List<LottoNumber> numbers) {
validateSize(numbers);
this.numbers = new ArrayList<>(numbers); // 방어적 복사
}
}import java.util.ArrayList; import java.util.List; public class Application { public static void main(String[] args) { Name crew1 = new Name("Fafi"); Name crew2 = new Name("Kevin"); List<Name> originalNames = new ArrayList<>(); originalNames.add(crew1); originalNames.add(crew2); Names crewNames = new Names(originalNames); // crewNames의 names: Fafi, Kevin crew2.setName("Sally"); // crewNames의 names: Fafi, Sally } }
Unmodifiable Collection이란?
Last updated