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 용도 클래스 만들때. |
최근 댓글