๐Ÿ“• Language/Java

[Java] Lombok ์–ด๋…ธํ…Œ์ด์…˜ ์ •๋ฆฌ

a n u e 2022. 7. 20. 13:10

 

@Getter

 : ์ ‘๊ทผ์ž ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜

@Setter

 : ์„ค์ •์ž ๋ฉ”์„œ๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜


๐Ÿ“’ ๊ทธ ๋ฐ–์˜ ์ƒ์„ฑ์ž ์ƒ์„ฑ ๊ด€๋ จ ์–ด๋…ธํ…Œ์ด์…˜

@AllArgsConstructor

 : ๋ชจ๋“  ํ•„๋“œ ๊ฐ’์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›๋Š” ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ฆ
@NoArgsConstructor

 : ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ์ž ์ƒ์„ฑ
@RequiredArgsConstructor

 : final์ด๋‚˜ @NonNull์ธ ํ•„๋“œ ๊ฐ’๋งŒ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›๋Š” ์ƒ์„ฑ์ž ๋งŒ๋“ฆ

 

์˜ˆ์‹œ ์ฝ”๋“œ

@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor
public class UserInfoVO {
    @NonNull
    private String id;
    @NonNull
    private String password;
    private String name;
}

-

@Test
public void AnTest() {
    //@NoArgsConstructor
    UserInfoVO info = new UserInfoVO();
    log.info(info);
    
    //@RequiredArgsConstructor
    UserInfoVO info2 = new UserInfoVO("id", "pw");
    log.info(info2);
    
    //@AllArgsConstructor
    UserInfoVO info3 = new UserInfoVO("id", "pw", "ea");
    log.info(info3);    
}

//  UserInfoVO(id=null, password=null, name=null)
//  UserInfoVO(id=id, password=pw, name=null)
//  UserInfoVO(id=id, password=pw, name=ea)

@ToString

 : toString() ๋ฉ”์„œ๋“œ ์ƒ์„ฑํ•ด์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜

   ์•„๋ž˜์™€ ๊ฐ™์ด exclude ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ, ์›ํ•˜์ง€ ์•Š๋Š” ์†์„ฑ์„ ์ถœ๋ ฅํ•˜์ง€ ์•Š๋„๋ก ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

@ToString(exclude = {"title", "id"})

 

 

@EqualsAndHashCode

 : equals์™€ hashcode ๋ฉ”์„œ๋“œ(๋‘ ๊ฐ์ฒด๊ฐ€ ๋™์ผํ•œ์ง€ ํ™•์ธํ•˜๋Š”)๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” ์–ด๋…ธํ…Œ์ด์…˜ 

 

@Data

 : @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor๋ฅผ ํ•ฉ์ณ ๋†“์€ ์–ด๋…ธํ…Œ์ด์…˜