lombok 의 Getter, Setter, RequiredArgsConstructor

Hyun·2023년 4월 1일
0
post-thumbnail

Getter, Setter 기능 이용

lombok 라이브러리를 이용하면 Getter, Setter 함수를 직접 정의하지 않고서도 해당 기능을 사용할 수 있다.

필드에 hello, lombok 멤버를 정의한 후, 해당 값에 대해 Getter, Setter 함수를 이용하고 싶으면 아래와 같은 형식을 사용하면 된다. 이때 필드명의 앞글자는 대문자로 적어줘야 한다. 리액트에서 useState 의 사용방법과 유사한 것 같다.

  • Getter 함수
    get필드명();
  • Setter 함수
    set필드명(변경할 값);

예시)

import lombok.Getter;
import lombok.Setter;

//useState 에 state, setState 랑 비슷한듯
@Getter 
@Setter
public class HelloLombok {
	
	private String hello;
	private int lombok;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HelloLombok helloLombok = new HelloLombok();
		helloLombok.setHello("헬로");//hello 필드의 값을 변경함
		helloLombok.setLombok(777);
		
		System.out.println(helloLombok.getHello());//hello 필드의 값을 가져옴
		System.out.println(helloLombok.getLombok());//lombok 필드의 값을 가져옴
	}

}
//출력
//hello
//777

@RequiredArgsConstructor

필드의 속성에 final 을 적용하고 롬복의 @RequiredArgsConstructor 에너테이션을 적용하면 해당 속성을 필요로 하는 생성자가 롬복에 의해 자동으로 생성성된다. 단 final이 없는 필드의 속성은 생성자에 포함되지 않는다.

final 을 적용했기 때문에 @Setter는 사용할 수 없다는걸 기억하자. final 은 한번 설정한 값을 변경할 수 없게 하는 키워드이다.

예시)
생성자가 없어도 생성자가 자동으로 생성되어 final 속성에 대해 초기화를 해주는 모습을 볼 수 있다.

import lombok.Getter;
import lombok.Setter;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
@Getter
//@Setter
public class HelloLombok {
	
	private final String hello;
	private final int lombok;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HelloLombok helloLombok = new HelloLombok("헬로", 777);
		
		
		System.out.println(helloLombok.getHello());//hello 필드의 값을 가져옴
		System.out.println(helloLombok.getLombok());//lombok 필드의 값을 가져옴
	}

}

다음과 같이 생성자를 직접 작성한 경우와 동일함

import lombok.Getter;
import lombok.Setter;
import lombok.RequiredArgsConstructor;

//@RequiredArgsConstructor
@Getter
//@Setter
public class HelloLombok {
	
	private final String hello;
	private final int lombok;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HelloLombok helloLombok = new HelloLombok("헬로", 777);
		
		
		System.out.println(helloLombok.getHello());//hello 필드의 값을 가져옴
		System.out.println(helloLombok.getLombok());//lombok 필드의 값을 가져옴
	}

}
profile
better than yesterday

0개의 댓글