728x90
반응형
@Getter, @Setter
Lombok에서 가장 자주 활용하는 어노테이션 Getter, Setter 메소드를 만들어준다.
package com.mysite.study;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
@Getter
@Setter
public class HelloLombok {
private String hello;
private int lombok;
public static void main(String[] args) {
HelloLombok helloLombok = new HelloLombok();
helloLombok.setHello("테스트");
helloLombok.setLombok(15);
System.out.println(helloLombok.getHello());
System.out.println(helloLombok.getLombok());
}
}
@AllArgsConstructor
모든 변수를 사용하는 생성자 생성
@NoArgsConstructor
기본 생성자 생성
@RequiredArgsConstructor
속성에 final을 적용하고 롬복의 @RequiredArgsConstructor 애너테이션을 적용하면 해당 속성을 필요로 하는 생성자가 생성된다. (※ final이 없는 속성은 생성자에 포함되지 않는다.)
package com.mysite.study;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@RequiredArgsConstructor
public class HelloLombok {
private final String hello;
private final int lombok;
public static void main(String[] args) {
HelloLombok helloLombok = new HelloLombok("헬로", 5);
System.out.println(helloLombok.getHello());
System.out.println(helloLombok.getLombok());
}
}
@EqualsAndHashCode
클래스에 대한 equals 함수와 hashCode 함수를 자동으로 생성
@ToString
클래스의 변수들을 기반으로 ToString 메소드를 생성
@ToString.Exclude 어노테이션을 붙여주면 출력을 제외할 수 있다.
상위 클래스에 toString을 적용시키고자 한다면 @ToString(callSuper = true)
@Data
@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor를 모두 지원한다.
@Data를 사용하면 사실 간단하지만 너무 무겁고 안정성읨 문제로 실무에서는 지양하는 편.
@Builder
해당 클래스의 객체의 생성에 Builder패턴을 적용
모든 변수들에 대해 build하기를 원한다면 클래스 위에 @Builder 선언
특정 변수만을 build하기 원한다면 생성자를 작성하고 그 위에 @Builder를 선언한다.
@Delegate
객체의 메소드를 다른 객체로 위임시켜 준다.
참고자료
728x90
반응형
댓글