본문 바로가기
개발/Java

[Lombok] @Data / @ToString / @EqualsAndHashCode / @Getter / @Setter / @RequiredArgsConstructor

by Allonsy 2022. 1. 20.
반응형

@Data

아래 5가지 롬복 어노테이션을 축약한 어노테이션

@ToString, @EqualsAndHashCode, @Getter(모든 필드) / @Setter (final 아닌 모든 필드), @RequiredArgsConstructor 


@ToString

toStrig() 메서드를 자동으로 생성해줌. 클래스이름과 필드를 콤마로 구분해서 문자열로 만들어준다

 

# 지원하는 configuration

- includeFieldNames  = [true | false] (default: true)

   fieldName = fieldValue

- doNotUseGetters= [true | false] (default: false)

   true : getter를 이용하지 않고 field에 직접 접근해서 toString() 생성

- callSuper = [call | skip | warn] (default: skip)

   call : super 클래스의 toString() 호출

   skip : super클래스의 toString() 호출 X

   warn :  super 클래스의 toString() 호출 X, 경고

- flagUsage = [warning | error] (default: not set)

   warning : @ToString 사용 시 경고

   error : @ToString 사용 시 에러


@EqualsAndHashCode

equals(Object other), hashCode() 메서드 구현

 

# 지원하는 configuration

- doNotUseGetters= [true | false] (default: false)

   true : getter를 이용하지 않고 field에 직접 접근해서 equals, hashCode 메서드 생성

- callSuper = [call | skip | warn] (default: skip)

   call : super 클래스의 equals, hashCode 호출

   skip : super클래스의 equals, hashCode 호출 X

   warn :  super 클래스의 equals, hashCode 호출 X, 경고

- flagUsage = [warning | error] (default: not set)

   warning : @EqualsAndHashCode 사용 시 경고

   error : @EqualsAndHashCode 사용 시 에러


@Getter

getter를 자동으로 만들어 준다


@Setter

setter를 자동으로 만들어 준다


@RequiredArgsConstructor

초기화 되지 않은 final 필드나 @NonNull 어노테이션이 붙은 필드에 대해 생성자를 만들어 준다

@NonNull 필드의 경우 명시적인 널 체크가 생성, null이 들어올 경우 NullPointerException 발생

파라미터의 순서는 클래스에 있는 필드 순서에 맞춰서 생성

 

 

[참고 - Lombok features]

https://projectlombok.org/features/all

 

Stable

 

projectlombok.org

[참고 - Lombok javadoc]

https://projectlombok.org/api/

 

Overview (Lombok)

Welcome to the lombok javadoc. If you're just looking to learn more about using lombok You probably want to look at the feature documentation. Otherwise, check the lombok package. If you're trying to extend lombok or write your own plugins, the other pa

projectlombok.org

 

반응형

댓글