내 프로젝트에 Lombok을 사용하고 있습니다. 나는 다음 작업을 수행 할Lombok Builder 주석으로 UnsupportedOperationException이 throw됩니다.
@Builder
@Data @AllArgsConstructor
public class ScreenDefinitionDTO {
@Singular
private List<ScreenDeclaration> screens;
}
: 같은 내 모델은 보이는
인스턴스가 생성됩니다String screenName = ctx.screenName().getText();
ScreenDeclaration declaration = ParsingUtils
.buildScreenDeclaration(StringUtils.trim(screenName));
:
public static ScreenDefinitionDTO buildEmptyScreenDTO() {
return ScreenDefinitionDTO.builder()
.screens(new ArrayList<>())
.build();
}
을 마지막으로, 내가 가진 :
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at java.util.AbstractList.add(AbstractList.java:108)
내가 cr을 바꿨을 때 롬복 빌더 패턴 모든 것을하지 않고 인스턴스를 먹는 것은 괜찮 :
는public static ScreenDefinitionDTO buildEmptyScreenDTO() {
return new ScreenDefinitionDTO(new ArrayList<>());
}
나는 롬복의 빌더 패턴에 어떤 문제가 있는지 이해할 수 없었다?
나는 스택 추적에서 더 볼 것이있다. 'Collection $ UnmodifiableList' 또는 비슷하게 설명하는 것과 같은 것입니다. – maaartinus
@maaartinus 이런 종류의 출력과 관련된 것을 보지 못했습니다. –
내가 틀렸어. 'lombok.singular.useGuava = true'를 설정하고 java.lang.UnsupportedOperationException을 얻습니다. \t com.google.common.collect.ImmutableCollection.add (ImmutableCollection.java:221)'에 있지만'Collections'는 단순히 상속에 의존합니다. 던지는 방법. – maaartinus