M

lombok(롬복) 어노테이션 본문

Java/lombok

lombok(롬복) 어노테이션

M_master 2022. 2. 3. 15:46

@Getter

private String name;

public String getName() {
	return this.name;
}

@Setter

private String name;

public void settName(String name) {
	this.name = name;
}

@AllArgsConstructor

- 모든 필드 값을 파라미터로 받는 생성자를 생성

(이 경우 @Data가 자동 생성한 기본 생성자는 사라진다)

 

@NoArgsConstructor

- 파라미터를 가지지 않는 생성자를 생성

 

@ToString

- 자동으로 toString() 메소드를 생성

※ @Tostring(exclude = "id") 와 같이 exclude를 사용하면 결과에서 id를 제외시킬 수 있다.

 

@EqualsAndHashCode(callSuper = [ true | false ])

- equals : 두 객체의 내용이 같은지, 동등성(equality)를 비교

- hashCode : 두 객체가 같은 객체인지, 동일성(identity)를 비교

- true : 부모클래스 필드 값들도 동일한지 체크

- false(기본값) : 자신 클래스의 필드 값만 고려

 

@Data

- Getter, Setter, hashCode, equals, toString 메소드를 모두 자동으로 추가

 

@NonNull

- 해당 변수가 null 로 넘어온 경우, NullPointerException예외를 일으켜 준다.

@NonNull @Setter
private String name;

obj.setName(null); // NullPointerException 예외 발생

@Builder

@Builder
public class User {
	private String name;
    private String birth;
    private int age;
}

User.builder()
	.name("개발자")
    .age(20)
    .build();

Builder 참고 : https://m-html.tistory.com/61

 

참고자료

https://projectlombok.org/features/Builder

https://projectlombok.org/features/EqualsAndHashCode

728x90