롬복이란?
https://mangkyu.tistory.com/78 님의 게시글을 보며 학습하였습니다.
LomBok - 어노테이션을 통해서 코드를 자동 완성해주는 라이브러리
- Getter, Setter, 생성자 등 다양한 어노테이션을 제공해 주기 때문에 코드의 라인 수를 줄일 수 있다.
LomBok 이 제공하는 기능
- @Getter / @Setter : 클래스의 모든 변수에 Getter / Setter 를 자동으로 만들어 준다.
@Getter // 클래스 위에 어노테이션을 사용하면 모든 변수에 Getter가 생성된다.
public class LomBokEx {
private Long id;
@Setter // 변수 위에 어노테이션을 사용하면 해당 변수에만 Setterr가 생성된다.
private String name;
}
- @AllArgsConstructor : 클래스의 모든 변수를 포함한 생성자를 만들어주는 어노테이션이다.
@AllArgsConstructor
public class LomBokEx {
private Long id;
private String name;
/* @AllArgsConstructor 를 이용하면 따로 작성해줄 필요가 없다.
public LomBokEx(Long id, String name) {
this.id = id;
this.name = name;
}
*/
}
- @NoArgsConstructor : 아무것도 포함하지 않은 기본 생성자를 만들어주는 어노테이션이다.
@NoArgsConstructor
public class LomBokEx {
private Long id;
private String name;
/* @NoArgsConstructor 를 이용하면 따로 작성해줄 필요가 없다.
public LomBokEx() {}
*/
}
- @RequiredArgsConstructor : 필수로 받아야 하는 특정한 변수를 포함한 생성자를 만들어 주는 어노테이션이다. 클래스를 만들 때 @NonNull 어노테이션을 변수에 붙이거나 final 키워드를 이용하면 자동으로 만들어준다.
@RequiredArgsConstructor
public class LomBokEx {
private final Long id;
private final String name;
private String email;
/* @RequiredArgsConstructor 를 이용하면 @NonNull 또는 final 키워드를 붙은 변수를 포함한 생성자를 자동으로 만들어준다.
public LomBokEx(Long id, String name) {
this.id = id;
this.name = name;
}
*/
}
- @EqualsAndHashCode : equals, hashcode 함수를 자동으로 생성해주는 어노테이션이다. 객체를 판단하고 싶을 때 사용한다.
@EqualsAndHashCode("id","name")
public class LomBokEx {
private final Long id;
private final String name;
private String email;
public static void main(String args[]) {
// 같은 객체로 인식
LomBokEx ex1 = new LombokEx(1L,"name1");
LomBokEx ex2 = new LombokEx(1L,"name1");
// 다른객체
LomBokEx ex3 = new LombokEx(150L,"name150");
}
}
- @ToString : 클래스의 모든 변수를 포함한 toString 메소드를 자동으로 만들어준다.
@ToString
public class LomBokEx {
private Long id;
private String name;
/* toSTring 메소드를 자동으로 만들어준다.
public String toString() {
return "LomBokEx{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
*/
}
-
@Data : Getter / Setter / ToString / EqualsAndHashCode / RequiredArgsConstructor 어노테이션을 모두 만들어주는 어노테이션이다.
-
@Builder : 클래스의 객채를 생성할 때 빌더 패턴을 적용할 수 있도록 해준다. 생성자에 담을 변수가 많을 경우에는 빌더패턴을 이용하면 가독성이 더욱 높아지는 효과가 있다.
@Data
@Builder
public class LomBokEx {
private final Long id;
private final String name;
private final String email;
public static void main(String args[]) {
LomBokEx ex1 = LomBokEx.builder()
.id(1L)
.name("name1")
.build();
// @Data 어노테이션을 이용했기 때문에 getter 자동으로 생성
System.out.println(ex1.getName());
}
}
- @Delegate : 객체의 메소드를 다른 객체로 위임시켜주는 기능이다.
Author And Source
이 문제에 관하여(롬복이란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gudnr1451/롬복이란저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)