본문 바로가기
error

java: constructor ~ in class ~ cannot be applied to given types

by 플라퉁 2023. 10. 14.
728x90
반응형

 

 

안녕하세요 오늘은 자바 개발중 발생한 에러건에 대한 내용입니다.

 

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 모든 필드(최종 필드 포함) 인수로 포함하는 생성자를 생성했습니다.

빌더 패턴을 사용하여 인스턴스를 생성하기 위한

충분한 인수가 있는 생성자를 제공했기 때문에 오류가 해결되었습니다.

 

 

감사합니다.

 

 

 

728x90
반응형

댓글