[Java] 자주 사용하는 Lombok Annotation 정리

Wooyong Jung·2023년 9월 25일
0

Java

목록 보기
3/4
post-thumbnail
post-custom-banner

Lombok은 기계적인 코드 작성을 자동화하여 개발을 단순화하고 코드 가독성을 향상시킨다. 이번 포스팅을 통해 Lombok에서 많이 사용되는 Annotation을 기록해두고자 한다.

Annotation기능
@NoArgsConstructor파라미터가 없는 기본 생성자 자동 생성
@AllArgsConstructor모든 필드 값을 파라미터로 받는 생성자 자동 생성
@RequiredArgsConstructorfinal, @NonNull인 필드 값만 파라미터로 받는 생성자 자동 생성
@GetterGetter 생성
@SetterSetter 생성
@ToString오버라이딩된 toString 생성 (클래스명 + 필드명)
@EqualsAndHashCodeEquals와 HashCode 메서드 오버라이딩
@Data@Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode를 합친 Annotation
@Slf4jlog.info("{}", arg1); 출력가능
@Builder빌더 패턴을 사용할 수 있도록 코드를 생성, 생성자와 비슷하나 builder의 형식으로 제공

@NoArgsConstructor

public class Item {
	private Integer id;
  	private String name;
    
    public Item() {
    }
}

@NoArgsConstructor는 파라미터가 없는 기본 생성자 자동 생성한다.

@NoArgsConstructor
public class Item {
	private Integer id;
  	private String name;
}

@AllArgsConstructor

public class Item {
	private Integer id;
  	private String name;
    
    public Item(Integer id, String name) {
    	this.id = id;
        this.name = name;
    }
}

@NoArgsConstructor는 모든 필드 값을 파라미터로 받는 생성자 자동 생성한다.

@AllArgsConstructor
public class Item {
	private Integer id;
  	private String name;
}

@RequiredArgsConstructor

public class Item {
	private Integer id;
  	private final String name;
    
    public Item(String name) {
        this.name = name;
    }
}

@RequiredArgsConstructorfinal, @NonNull인 필드 값만 파라미터로 받는 생성자 자동 생성한다.

@RequiredArgsConstructor
public class Item {
	private Integer id;
  	private String name;
}

@Getter & @Setter

public class Item {
	private Integer id;
  	private String name;
    
    public void setId(Integer id) {
    	this.id = id;
    }
    
    public void setName(String name) {
    	this.name = name;
    }

    public Integer getId() {
    	return id;
    }
    
    public String getName() {
    	return name;
    }
}

@Getter @Setter 어노테이션을 붙이면 해당 클래스 멤버 변수들의 getter, setter 메소드를 이용할 수 있다.

@Getter 
@Setter
public class Item {
	private Integer id;
  	private String name;
}

@Builder

해당 클래스의 객체의 생성에 Builder 패턴을 적용시켜준다. 모든 변수들에 대해 적용하길 원하면 클래스 위에 @Builder를 붙이면 되지만, 특정 변수에만 적용하길 원하면 생성자를 작성하고 그 위에 @Builder 어노테이션을 붙여주면 된다.

@Getter
@NoArgsConstructor
public class Item {
	private Integer id;
  	private String name;

    @Builder
    public Item(String name){
        this.name = name;
    }
}

@Builder를 실제 활용한다면 아래와 같이 사용할 수 있다.

Item  item = Item.builder()
			.name("연필");
profile
실패를 두려워하지 않는 백엔드 개발자가 되기 위해 노력하고 있습니다.
post-custom-banner

0개의 댓글