https://mangkyu.tistory.com/78 님의 게시글을 보며 학습하였습니다.
@Getter // 클래스 위에 어노테이션을 사용하면 모든 변수에 Getter가 생성된다.
public class LomBokEx {
private Long id;
@Setter // 변수 위에 어노테이션을 사용하면 해당 변수에만 Setterr가 생성된다.
private String name;
}
@AllArgsConstructor
public class LomBokEx {
private Long id;
private String name;
/* @AllArgsConstructor 를 이용하면 따로 작성해줄 필요가 없다.
public LomBokEx(Long id, String name) {
this.id = id;
this.name = name;
}
*/
}
@NoArgsConstructor
public class LomBokEx {
private Long id;
private String name;
/* @NoArgsConstructor 를 이용하면 따로 작성해줄 필요가 없다.
public LomBokEx() {}
*/
}
@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("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
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());
}
}