[WEB]Back-end

Lombok 빠르게 정리

이운형 2021. 12. 30. 23:14
반응형

@Getter => 다른곳에서 호출 가능하게 해줘! (문열어)

public class test {

    private String id;
    //@Getter
    public String getId(){
        return id;
    }
}

 

@Setter = > 다른곳에서 무작위로 바꿀수 있게 해줘(너를 마음대로 바꿀꺼야) == 최대한 쓰지말자

public class test {

    private String id;
    
    //@Setter
    public void setId(String id) {
        this.id = id;
    }
}

 

@NoArgsConstructor => 파라미터가 없는 생성자를 생성합니다. ex) void Name(int a, int b){} 에서 int a, int b 같은 애들을 파라미터라고 한다.  == 최대한 쓰지말자

한계)

1. final로 생성된 경우 초기화가 안됨. => 오류발생

2. @NonNull 같은 제약조건은 무시해버림 

public class test {

    private String id;
    
    //@NoArgsConstructor
    public test(){
    }
    
}

@RequiredArgsConstructor =>추가 작업을 필요로 하는 생성자를 생성 즉 final, @NonNull 필드들에 대해 생성자를 생성해준다.  == 상황봐서 사용 OK!  

public class test {

    private String id;
    private final String username;
    
    //@RequiredArgsConstructor
    public test(String username){
        this.username = username;
    }

}

 

@AllArgConstructor => 모든 필드에 대한 생성자를 생성한다. (다 생성자 만들어준다.)

public class test {

    private String id;
    private final String username;

    //@AllArgsConstructor
    public test(String id,String username){
        this.id = id;
        this.username = username;
    }
}

 

@ToString => 필드에 맞게 알아서 출력해주는 어노테이션

 

만들어진 필드에 관해     

test(id =id , password = password)

처럼 출력해준다. id는 id에 맞춰서  passward 는 password에 맞춰서 값을 넣어줘.

id를 제외하고 싶으면 @ToString(exclude={"id"})를 넣어주면

test( password = password)

만 출력되!

 

@ToString
public class test {

    private String id;
    private String passward;
}
test.setId("id");
test.setPassword("password")

// test(id =id , password = password)

 

@Data => 아래 5개 합친 어노테이션 , == 최대한 쓰지말자

@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor

 

@EqualsAndHashCode는 잘 모르겠습니다. 꾸준히 공부중

반응형