롬복이란?

UkJJang·2021년 9월 7일
0

https://mangkyu.tistory.com/78 님의 게시글을 보며 학습하였습니다.

LomBok - 어노테이션을 통해서 코드를 자동 완성해주는 라이브러리

  1. 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 : 객체의 메소드를 다른 객체로 위임시켜주는 기능이다.
profile
꾸준하게 성실하게

0개의 댓글