IT정보사전

[JAVA] Lombok 사용 시 @Data Compile Warning 본문

IT정보

[JAVA] Lombok 사용 시 @Data Compile Warning

작은나무0530 2024. 6. 21. 09:30
728x90
반응형

안녕하세요~ 작은나무입니다!
IntelliJ를 사용해서 프로젝트를 진행중에 아래와 같은 경고 문구가 있어서 알아보겠습니다.

Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '(callSuper=false)' to your type. 

Warning이라 그냥 사용해도 되지만, 왜 경고 문구가 발생하는지 알아보고 수정해 보겠습니다.

Lombok @Data는 @ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor를 생성시켜주는 어노테이션입니다.

해당 경고 메시지는 @EqualsAndHashCode(callSuper=false) 어노테이션을 추가하면 경고 메시지가 사라지게 됩니다.
상속 구조일 때 부모 클래스의 필드를 포함해서 EqualsAndHashCode를 생성할지, 자식 클래스만 대상으로 생성할지가 불분명하기 때문에 발생하는 경고 메시지 입니다.

※ EqualsAndHashCode 참조 링크

 

@EqualsAndHashCode

 

projectlombok.org

@Data 어노테이션은 코드를 간결하게 작성할 수 있는 장점이 있지만, 메서드가 생성됐을 때 코드에 어떤 영향이 있을지 고려하지 않고 사용하면 예상하지 못한 결과를 발생시킬 수도 있기 때문에 @Getter, @Setter를 사용하는 것이 좋지 않을까 생각합니다.

728x90
반응형
그리드형
Comments