@Builder / @NoArgsConstructor / @AllArgsConstructor / @RequireArgsConstructor

이용만·2022년 5월 5일
0

@Builder

Builder는 오브젝트 생성을 위한 디자인 패턴이다.

TodoEntity todo = TodoEntity.builder()
				  .id("t-10328373")
                  .userId("developer")
                  .title("implement Model")
                  .build();

Builder 패턴을 사용하는 것은 새엇ㅇ자를이용해 오브젝트를 생성하는 것과 비슷하다.
생성자를 이용하는 것과 비교해 장점이 있다면 생성자 매개변수의 순서를기억할 필요가 없다.

@NoArgsConstructor

@NoArgsConstructor 어노테이션은 매개변수가 없는 생성자를 구현해준다.

public TodoEntity(){

}

@AllArgsConstructor

@AllArgsConstructor 어노테이션은 클래스의 모든 멤버 변수를 매개변수로 받는 생성자를 구현해준다.

public TodoEntity(String id, String userId, String title, boolean done){
super();
this.id = id;
this.userId = userId;
this.title = title;
this.done = done;
}

@RequireArgsConstructor

@RequiredArgsConstructor 어노테이션은 final이나 @NotNull인 필드 값만 파라미터로 받는 생성자를 만들어준다.

@Data

@Data 어노테이션은 클래스 멤버 변수의 Getter/Setter 메서드를 구현해준다.
@Data / @Getter @Setter 와의 차이 : @Data를 사용하면, 안에 들어가있는 @ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 도 같이 사용되는 것이기에 발생하는 문제들이 존재한다.

profile
성장하는 개발자가 되고자 합니다.

0개의 댓글