관리 메뉴

나만의공간

@Accessors 어노테이션 설명 본문

IT/Spring

@Accessors 어노테이션 설명

밥알이 2024. 3. 4. 16:18

lombok을 사용하면서 lombok에서 제공하는 어노테이션을 사용하게 됩니다.
이중 Accessors관련 어노테이션이 어떤 기능을 하고 어떤 경우에 사용하게 되는지 정리를 합니다.

Accessors

우선 간단한 샘플예제를 확인후 관련 기능을 설명합니다.

import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

// @Accessors 어노테이션을 사용하여 getter 및 setter 작성 규칙을 설정합니다.
@Accessors(chain = true, fluent = true, prefix = "_")
public class Person {
    
    // _name 필드에 대한 getter 및 setter 메서드를 생성합니다.
    @Getter @Setter
    private String _name;
    
    // _age 필드에 대한 getter 및 setter 메서드를 생성합니다.
    @Getter @Setter
    private int _age;

    // @ToString 어노테이션을 사용하여 toString 메서드를 생성합니다.
    @Override
    public String toString() {
        return "Person(" + this._name + ", " + this._age + ")";
    }

    // main 메서드에서 클래스를 테스트합니다.
    public static void main(String[] args) {
        // 체이닝과 플루언트 스타일의 메서드 호출을 사용하여 객체를 생성하고 속성을 설정합니다.
        Person person = new Person().name("John").age(30);

        // 생성된 객체를 출력합니다.
        System.out.println(person);
    }
}
  • chain: 메서드에 체이닝을 가능하게 합니다. this를 반환하여 메서드 호출을 연결할 수 있게 됩니다.
    e.g) Person person = new Person().name("John").age(30);

  • fluent: 플루언트 스타일의 메소드를 생성할지 여부를 결정하고 기본값은 'false' 입니다.
    setName / setAge 같이 set을 미사용할 수 있습니다.
    e.g) Person person = new Person().name("John").age(30);

  • prefix: 생성할 getter 및 setter 메서드의 접두사로 사용하게 됩니다. 기본값은 없습니다.
    this._name과 같이 변경하여 get메서드를 호출하게 됩니다.
    e.g) return "Person(" + this._name + ", " + this._age + ")";
Comments