๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL

02/28(์ˆ˜) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 46์ผ์ฐจ TIL - @EqualsAndHashCode

by ๊ฐ์ž๊ฐœ๋ฐœ๊พผ 2024. 2. 29.

 

๐Ÿ“–  ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

  • @EqualsAndHashCode

 

๐Ÿฅ”  @EqualsAndHashCode

ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ง„ํ–‰ ์ค‘ ์˜ˆ์ƒ๊ฐ’๊ณผ ๊ฒฐ๊ด๊ฐ’์ด ์ž๊พธ

Expected :com.spring.nbcijo.dto.response.PostResponseDto@7d2998d8

Actual :com.spring.nbcijo.dto.response.PostResponseDto@5a237731

์ด๋Ÿฐ ์‹์œผ๋กœ ๋–ด์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋Š” ๊ฐ์ฒด์˜ equals ๋ฐ hashCode ๋ฉ”์„œ๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์„ ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

equals ๋ฐ hashCode ๋ฉ”์„œ๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ๊ตฌํ˜„๋˜์ง€ ์•Š์œผ๋ฉด ๊ฐ์ฒด์˜ ๋™๋“ฑ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•„ ํ…Œ์ŠคํŠธ์—์„œ ์˜ˆ์ƒํ•œ ๊ฒฐ๊ณผ์™€ ์‹ค์ œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ @EqualsAndHashCode์™€ ๊ฐ™์€ ์• ๋„ˆํ…Œ์ด์…˜์„ Dto์— ๋‹ฌ์•„์คฌ๋”๋‹ˆ ํ•ด๊ฒฐ๋์Šต๋‹ˆ๋‹ค.

@EqualsAndHashCode๋Š” ๋กฌ๋ณต(Lombok) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ์• ๋…ธํ…Œ์ด์…˜ ์ค‘ ํ•˜๋‚˜๋กœ,

ํด๋ž˜์Šค์˜ equals์™€ hashCode ๋ฉ”์„œ๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋กฌ๋ณต์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ํ•„์š” ์—†์ด ๊ฐ„๋‹จํžˆ ์• ๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๐Ÿ“š  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์–ด๋ ต์ง€๋งŒ ์ฐจ๊ทผ์ฐจ๊ทผ ์—ด์‹ฌํžˆ ํ•ฉ์‹œ๋‹ค!