안녕하세요 오늘은 자바 개발중 발생한 에러건에 대한 내용입니다.
java: constructor ~ in class ~ cannot be applied to given types;
required: no arguments
found: java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String
reason: actual and formal argument lists differ in length
이런 에러인데요 간단합니다.
@Builder 를 사용할때 @RequiredArgsConstructor 를 사용하지 마세요
발생한 오류는 코드의 Lombok 주석( @Builder, @RequiredArgsConstructor) 사용과 관련이 있습니다.
Lombok은 컴파일 중에 getter/setter 메서드,
생성자 및 기타 반복 코드를 자동으로 생성하여
Java 클래스의 상용구 코드를 줄이는 데 도움이 되는 라이브러리입니다.
Lombok 주석의 특정 동작은 용도 및 프로젝트 구성에 따라 달라질 수 있습니다.
귀하의 경우에는 클래스에 인수가 없는 생성자가 없기 때문에 오류가 발생했습니다.
@RequiredArgsConstructor를 사용하면
Lombok은 최종이 아닌 모든 필드를 인수로 포함하는 생성자를 생성했습니다.
그러나 빌더 패턴을 사용하여 의 인스턴스를 생성했기 때문에
클래스 인수가 없는 생성자가 필요했습니다.
@AllArgsConstructor를 사용하도록 전환하면
Lombok은 모든 필드(최종 필드 포함)를 인수로 포함하는 생성자를 생성했습니다.
빌더 패턴을 사용하여 인스턴스를 생성하기 위한
충분한 인수가 있는 생성자를 제공했기 때문에 오류가 해결되었습니다.
감사합니다.
'error' 카테고리의 다른 글
Multipartform @RequestPart 문제 (0) | 2024.03.02 |
---|---|
[ERROR] Failed to execute goal on project ~ Blocked mirror for repositories (2) | 2023.10.05 |
fatal: detected dubious ownership in repository at (0) | 2023.09.25 |
댓글