수정 불가능한 컬렉션을 만들어 봅니다.
final 만으로는 부족하다.
그냥 final만 붙이는 경우.
1 |
|
list
를 보면 static final을 붙여줬지만, 수정이 가능하다!- 왜그럴까?
- final은 정확히는 한번만 선언될 수 있음을 나타내는 키워드이다.
- 단순히 변수일때는 상관이 없지만, 객체인 컬렉션인 경우에는 선언은 됐지만 변경될 수 있다.
- 객체 변수에 final을 건것이므로, 새롭게 다른 참조값을 지정할 수는 없다.
- 하지만 객체 자체는
immutable
되지 않는다. 즉 속성의 경우에는 변경이 가능한 상태가 유지 된다.
unmodifiable을 붙이는 경우
1 |
|
Collections.unmodifiableList
을 넣어준다면, 수정이 불가능 해진다.- 즉 컬렉션이 수정되는것을 원치 않는다면,
unmodifiable
을 이용하자.