값 추가삭제변경이 불가능한 컬렉션 계열 클래스
웹 & 안드로이드/JAVA & JSP2014. 5. 29. 09:38
리스트나 맵등 Collection과 Map계열 클래스들은 앞에 final을 붙혀주면 일반 변수와 마찬가지로 초기 선언한 값 외에 수정이 불가능 하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
public class Main {
public static void main(String[] args) {
System.out.println(A.list.toString());
A.list.add("d"); //변경하려고 하면 java.lang.UnsupportedOperationException이 발생한다.
System.out.println(A.list.toString());
}
}
class A{
public static final List<String> list = Arrays.asList(new String[] {"a", "b", "c"});
} |
결과 :
[a, b, c]
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(Unknown Source)
at java.util.AbstractList.add(Unknown Source)
at a.Main.main(Main.java:6)
- Collections.unmodifiable... 메소드를 이용하는 방법도 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
public class Main {
public static void main(String[] args) {
System.out.println(A.list.toString());
A.list.add("d");
System.out.println(A.list.toString());
}
}
class A{
public static List<String> list = Collections.unmodifiableList(Arrays.asList(new String[] {"a", "b", "c"}));
} |
결과는 위와 동일.
'웹 & 안드로이드 > JAVA & JSP' 카테고리의 다른 글
[Java] 메소드 하나에 한해서 제너릭 사용하기 (0) | 2014.06.14 |
---|---|
Throwable.getStackTrace() - 자신을 호출한 이전 메소드 혹은 클래스 정보 보기. (1) | 2014.06.07 |
대충 만들어본 로그 클래스 (0) | 2014.05.15 |
프로그래밍의 디자인 패턴. (0) | 2013.12.12 |
자바 문법 문제 2 (0) | 2013.12.09 |
댓글()