Project Loombok 기능 분석

IntelliJ Lombok plugin GitHub | Issues | Donate ( PayPal ) A plugin that adds first-class support for Project Lombok Features

   
@Getter and @Setter getter, setter 자동 생성
@ToString toString() 자동 생성
@EqualsAndHashCode equals(), hashCode() 자동 생성
@AllArgsConstructor 모든 필드를 포함한 생성자 만듬
@RequiredArgsConstructor final 혹은 @NonNull 필드만 포함한 생성자 만듬
@NoArgsConstructor 파라미터가 없는 생성자 만듬
@NoArgsConstructor(force=true)로 설정하면 모든 final파라미터를 0/false/null로 초기화 함
@Log log 변수 자동 생성, 환경에 따라 아래에서 골라 사용할 수 있음.
@Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog
@Data 여러 기능을 한꺼번에 선언!
(@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor)
@Builder Builder를 자동추가하여 Builder 패턴을 쉽게 적용
Person.builder().name(“Adam Savage”).city(“San Francisco”).job(“Mythbusters”).job(“Unchained Reaction”).build();

@Singular JDK1.8이상에서만 쓸 것. 
Iterable, Collection, List에서 사용 가능하며, add와 clear함수 자동 생성.
builder패턴에서 .add(“build”) 식으로 List 값 넣을때 사용함
@Value private하고 final한 불변 필드 생성!
프로퍼티 값 가져다 쓸때 @Value(“${front.gateway}”)  이런식으로 사용
@Accessors getter, setter의 유연한 메서드체인이 가능
@SneakyThrows Exception 발생시 선언된 class로 전달함.

  @SneakyThrows(UnsupportedEncodingException.class)
  public String utf8ToString(byte[] bytes) {
    return new String(bytes, "UTF-8");
  }
  
  @SneakyThrows
  public void run() {
    throw new Throwable();
@UtilityClass final한 클래스, static한 멤버필드인 Utility 용도 클래스 만들때.

 

You may also like...

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.