본문 바로가기
❤️‍🔥TIL (Today I Learned)

[TIL] 2022-12-20(37day)

by elicho91 2022. 12. 20.

자주쓰이는 Lombok 어노테이션


👉  Lombok

- Java에서 자주 반복되는 코드들을 어노테이션을 통해 자동으로 생성 해 주는 라이브러리

 

@AllArgsConstructor

 - 클래스에 존재하는 모든 필드에 대한 생성자를 자동으로 생성

(final 키워드, 혹은 @NonNull 이 붙은 멤버 변수만을 받는 생성자를 만들어줌)

 

@NoArgsConstructor
- 파라미터를 받지 않는 생성자를자동으로 생성
(필드들이 final로 생성되어 있는 경우에는 필드를 초기화할 수 없기 때문에 에러 발생)

 

@RequriedArgsConstructor

 - 초기화 되지 않은 모든 final 필드, @NonNull과 같이 제약조건이 설정되어있는 모든 필드들에 대한 생성자를 자동으로 생성

 

@Builder
 - 빌더패턴을 적용 시킨 방법으로 객체를 생성.

 

@Data = @RequiredArgsConstructor + @Getter + @Setter + @ToString + @EqualsAndHashCode

 - (@Data 대신, @Getter, @Setter, @ToString으로 명시하는 것을 권장한다.)

 

@NonNull Null

 - 값이 될 수 없다는 것을 명시 / NullPointerException에 대한 대비책


@Cleanup

 - 자동으로 close() 메소드를 호출.


@ToString

 - toString() 메소드를 생성 / @ToString(exclude={"제외할 값"}) 처럼 원하지 않는 속성은 제외할 수 있다.


@EqualsAndHashCode

 - 해당 객체의 equals()와 hashCode() 메소드를 생성.


@Value

 - 불변 클래스를 생성할 때 사용합니다.


@SneakyThrows

 - 예외 발생 시 Throwable 타입으로 반환.


@Syncronized

 - 메소드에서 동기화를 설정

 


🙋‍♂️ 소감 : 

롬복을 사용하면 코드들이 많이 다이어트가 된다.@Data 같은 경우는 setter 의 무분별한 사용 및 toString의 무한루프가 생길 수가 있어 지양한다.

😈 아는 내용이라고 그냥 넘어가지 않기! 😈

 

 

 

'❤️‍🔥TIL (Today I Learned)' 카테고리의 다른 글

[TIL] 2022-12-22(39day)  (0) 2022.12.22
[TIL] 2022-12-21(38day)  (0) 2022.12.21
[TIL] 2022-12-19(36day)  (0) 2022.12.19
[TIL] 2022-12-15(35day)  (0) 2022.12.18
[TIL] 2022-12-14(34day)  (0) 2022.12.15

댓글