java.lang.UnsupportedOperationException
at java.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:142)
오류 메시지에 답이 나와있다. ImmutableCollection에 대한 UnsupportedOperationException이다. 아래처럼 재현 가능하다.
@Test
@DisplayName("리스트 수정 테스트")
public void unsupportedOperationException() {
List<String> aespaList = List.of("karina", "winter", "giselle");
assertThrows(UnsupportedOperationException.class, () -> {
aespaList.add("ningning");
});
}
나의 경우 List.of를 통해 생성한 불변 객체(ImmutableCollection)를 수정하려했기 때문에 발생한 예외다.
Java doc에 unmodifiable list를 리턴해줌을 알 수 있다. 아래처럼 간단하게 복사해서 우회할 수 있다.
@Test
@DisplayName("리스트 수정 테스트")
public void unsupportedOperationException() {
List<String> aespaList = List.of("karina", "winter", "giselle");
assertThrows(UnsupportedOperationException.class, () -> {
aespaList.add("ningning");
});
List<String> aespaListModifiable = new ArrayList<>(aespaList);
assertDoesNotThrow(() -> {
aespaListModifiable.add("ningning");
});
}
사용하는 API 문서를 유심히 살펴보자.
'Programming > 삽질일기' 카테고리의 다른 글
[Java] 테스트 코드에서 lombok 사용하기 (0) | 2023.12.29 |
---|---|
[Java] JMH 벤치마크 중 org.openjdk.jmh.runner.RunnerException: ERROR: Another JMH instance might be running. (1) | 2023.12.27 |
[JS, WEB] bfcache와 웹 브라우저 최적화 (뒤로 / 앞으로 캐시) (0) | 2023.02.28 |
[TIP] 부정조건문은 의미해석이 쉽지 않다. (0) | 2022.03.08 |
[SPRING] @Qualifier : 동일한 이름의 bean이 존재한다면? (0) | 2022.01.14 |
댓글