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;
}
  • valueAccessLevel를 전달하여 접근 제어자를 지정할 수 있다.

위 코드는 아래와 같이 변경된다.

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)

@Getterlazytrue로 설정하면 값을 초기화하는 getter 메소드가 처음 호출 될 때까지 지연시킬 수 있다.




최종 수정 : 2024-01-18