IntelliJ @RequiredArgsConstructor 에러 해결

2023. 12. 7. 00:44Java

728x90
반응형

오류

아래 사진과 같이 build.gralde 파일에 lombok 의존성을 추가했다.

<build.gradle dependencies>

하지만 IntelliJ에서는 lombok 어노테이션을 인식하지 못하고, final 키워드의 멤버변수가 초기화 되지 않았다고 인식하여
문법 오류(빨간 줄)를 표시한다.

<@RequiredArgsConstructor 가 있음에도 빨간줄이 뜨는 모습>

그런데 프로젝트를 빌드해보면 또 빌드가 잘된다.

<빌드 후 생성된 .class 파일들>
<Foo.class 파일>

 

Foo.class 파일을 보면 final 멤버변수 Bar를 초기화하는 생성자가 잘 생성되어있다.

 

실제로는 lombok의 @RequiredArgsConstructor 이 잘동작한 것이다.


원인

lombok은 자바의 Annotation Processor를 사용하여 동작한다.
lombok의 어노테이션(@Getter, @Setter, @RequiredArgsConstructor 등)은 컴파일 시점에 분석 되고,
각 어노테이션에 맞게 코드를 추가해주기 위해 바이트코드를 조작한다.

 

IntelliJ는 컴파일 후 추가 될 바이트코드를 알 수 없기 때문에 문법오류라고 판단하여 빨간 줄을 표시하는 것이다.


해결방법

IntelliJ의 Lombok plugin을 추가하면 된다.

상단 탭 IntelliJ IDEA > Settings > Plugins Marketplace에서 설치 가능하다.

<Lombok plugin이 추가된 모습>

 

이 plugin을 설치하면 IntelliJ는 lombok이 추가할 코드를 인식하게 되고 빨간줄이 사라진다.

728x90
반응형