Lombok

Jung·2021년 11월 12일
0

TIL

목록 보기
50/77
post-thumbnail

Lombok

Lombok은 편집기, 빌드 툴에 자동으로 연결되어 Java 개발을 편하게 하는 Java 라이브러리다.
반복되는 getter, setter, equals 등의 메서드 작성 코드를 줄일 수 있다.

@Getter / @Setter

getter, setter를 자동으로 구현한다.

@ToString

toString() 메서드를 자동으로 구현한다.

@EqualsAndHashCode

hashCode와 equals를 자동으로 생성한다.

equals: 두 객체의 내용이 같은지, 동등성(equality)를 비교하는 연산자
hashcode: 두 객체가 같은 객체인지, 동일성(identity)를 비교하는 연산자

@NoArgsConstructor / @RequiredArgsConstructor / @AllArgsConstructor

생성자를 자동으로 생성한다.

@NoArgsConstructor

  • 파라미터가 없는 생성자를 생성한다.
  • 필드들이 final로 생성되어 있는 경우에 필드를 초기화 할 수 없기 때문에 생성자를 만들 수 없고 에러가 발생하게 된다.

@RequiredArgsConstructor

  • 초기화 되지 않은 모든 final 필드, @NonNull 필드에 대해 생성자들을 자동으로 생성한다.

@AllArgsConstructor

  • 클래스에 존재하는 모든 필드에 대해 생성자를 자동으로 생성한다.
  • @NonNull로 표기된 매개변수에 대해 null 검사를 수행한다.

@NonNull : null을 허용하지 않음
@Nullable : null을 허용함

생성자 관련 어노테이션을 사용할 때 주의사항

  • static 필드들은 skip 된다.
  • 파라미터의 순서는 클래스 명시 순서에 따라 생성하기 때문에 주의를 기울여야 한다.
  • 기본값은 public 이지만, 필요에 따라 접근 제한자를 설정해야 한다.

@Data

  • @ToString + @EqualsAndHashCode + @Getter + @Setter + @RequiredArgsConstructor
  • 모든 필드에 @ToString, @EqualsAndHashCode, @Getter 적용
  • final이 아닌 필드에 @Setter 적용
  • @RequiredArgsConstructor 적용

이외에도 롬복에서 제공하는 기능들은 이곳에서 확인이 가능하다.

참고
“Lombok Features.” Stable, https://projectlombok.org/features/all.

Killog. “Lombok 도큐먼트 정리.” Killog, TISTORY, 15 Mar. 2021, https://kils-log-of-develop.tistory.com/598.

동구 열정적이고 끈기있는 기록하는. “[Java] Lombok @Getter, @Setter, @EqualsAndHashCode, @Data 자주쓰이는 어노테이션들.” 인생은 속도가 아니라 방향이다, TISTORY, 20 Oct. 2020, https://donggu1105.tistory.com/99.

profile
97kim.github.io

0개의 댓글