Java Lombok | getter, setter 메소드 자동 생성 - @Getter @Setter
@Getter
, @Setter
사용
@Getter
에서 getter 메소드를 @Setter
에서 setter 메소드를 자동 생성 할 수 있다.
package com.devkuma.tutorial.lombok;
import lombok.Getter;
import lombok.Setter;
public class GetterSetterTutorial {
@Getter
@Setter
private String value;
public static void main(String[] args) {
GetterSetterTutorial tutorial = new GetterSetterTutorial();
tutorial.setValue("Hello @Getter, @Setter");
System.out.println(tutorial.getValue());
}
}
실행 결과
Hello @Getter, @Setter
접근 제어 AccessLevel
접근 제어자를 지정할 수도 있다.
package com.devkuma.tutorial.lombok;
import lombok.AccessLevel;
import lombok.Getter;
public class GetterAccessLevelTutorial {
@Getter(AccessLevel.PRIVATE)
private String value;
}
value
에AccessLevel
를 전달하여 접근 제어자를 지정할 수 있다.
위 코드는 아래와 같이 변경된다.
package com.devkuma.tutorial.lombok;
public class GetterAccessLevelTutorial {
private String value;
public GetterAccessLevelTutorial() {
}
private String getValue() {
return this.value;
}
}
- value의 getter 메서드(
getValue()
)가private
으로 지정된 것을 볼 수 있다.
@Getter(lazy=true)
package com.devkuma.tutorial.lombok;
import lombok.Getter;
public class GetterLazyTutorial {
public static void main(String[] args) {
GetterLazyTutorial tutorial = new GetterLazyTutorial();
System.out.println("Main instance is created");
tutorial.getLazy();
}
@Getter
private final String notLazy = createValue("not lazy");
@Getter(lazy=true)
private final String lazy = createValue("lazy");
private String createValue(String name) {
System.out.println("createValue(" + name + ")");
return null;
}
}
실행 결과
createValue(not lazy)
Main instance is created
createValue(lazy)
@Getter
에 lazy
를 true
로 설정하면 값을 초기화하는 getter 메소드가 처음 호출 될 때까지 지연시킬 수 있다.
최종 수정 : 2024-01-18