UnsupportedOperationException 에러는 일반적으로 List 형을 new로 초기화하지 않는 상태에서 Arrays로 생성하였을 시 주로 발생한다.
케이스
public static void main(String[] args) {
List<String> tempList = Arrays.asList("aaa");
System.out.println(tempList);
tempList.add("bbb");
}
일반적으로 값을 세팅하고, 변경하지 않을 거라면 위와 같이 List형을 Arrays.asList로 초기화해도 아무런 문제가 없으나, new로 생성하지 않는 List의 값을 변경하려 한다면 UnsupportedOperationException 에러가 발생한다. 위 코드를 실행하면 다음과 같은 결과가 나온다.
실행결과
[aaa]
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at java.util.AbstractList.add(AbstractList.java:108)
at TestMain.main(TestMain.java:15)
즉, 초기화를 한 tempList를 출력할 때에는 아무런 문제가 없으나 tempList에 값을 추가/변경/삭제하려고 할 시 에러가 발생하는 것이다.
해결책
public static void main(String[] args) {
List<String> tempList = new ArrayList<>(Arrays.asList("aaa"));
System.out.println(tempList);
tempList.add("bbb");
System.out.println(tempList);
}
실행결과
[aaa]
[aaa, bbb]
반응형
'Stackoverflow > Java' 카테고리의 다른 글
org.springframework.web.multipart.support.MissingServletRequestPartException (0) | 2022.04.22 |
---|---|
[Java] Unable to access jarfile (0) | 2022.04.19 |
[Springboot] web server Port 8080 was already in use. (0) | 2021.07.16 |
[Springboot] Path with "WEB-INF" or "META-INF" (0) | 2021.06.21 |
Error while downloading 'https://maven.apache.org/xsd/maven-4.0.0.xsd' (0) | 2021.06.11 |