email๊ณผ userEmail์ ๋ถ๋ช ํ ๊ฐ์ ๊ฐ์ธ๋ฐ .. == ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ ๋ ๊ฐ๋ค๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์๋ค.
๋๋ฒ๊ฑฐ๋ฅผ ํตํด์๋ ๊ฐ์ ๊ฐ์ด๊ณ ํฐ๋ฏธ๋์ ์ถ๋ ฅํด๋ดค์ด๋ ๊ฐ์ ๊ฐ์ธ๋ฐ if๋ฌธ์ ๊ฑธ๋ฆฌ์ง ์์๋ค.
Java์ ๋ฌธ์์ด ๋น๊ต ๋ฐฉ์ ๋๋ฌธ์ด์๋ค.
== ์ฐ์ฐ์์ equals() ์ฐ์ฐ์์ ์ฐจ์ด
Java์์ ๋ฌธ์์ด์ ๋น๊ตํ ๋, == ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๋ฌธ์์ด ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ ๊ฐ์์ง๋ฅผ ๋น๊ตํ๋ค.
๋ฌธ์์ด์ ๋ด์ฉ์ด ๊ฐ๋๋ผ๋, ๋ค๋ฅธ ๊ฐ์ฒด์ผ ๊ฒฝ์ฐ false๋ฅผ ๋ฐํํ๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์, ๋ฌธ์์ด์ ๋ด์ฉ์ ๋น๊ตํ ๋๋ .equals() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค!
log.info(email);
log.info(userEmail);
if (email.equals(userEmail) && UrlDao.getUrl(urlHash).getIsValid()) {
return new UrlDeleteRes("error.warningValidUrl", false);
}
if (!email.equals(userEmail) && UrlDao.getUrl(urlHash).getIsValid()) {
return new UrlDeleteRes("error.cannotDeleteValidUrl", false);
}
์ด๋ ๊ฒ ๋ณ๊ฒฝํ๋ฉด email๊ณผ userEmail์ ๋ด์ฉ์ด ์ค์ ๋ก ๊ฐ์์ง๋ฅผ ์ ํํ๊ฒ ๋น๊ตํ ์ ์๋ค.
equals()์ ์์๋ ์ด๋ป๊ฒ ์ ํ๋ฉด ์ข์๊น
์์ ์ฝ๋์์, email.equals(userEmail)๊ณผ userEmail.equals(email)์ ๊ธฐ๋ฅ์ ์ผ๋ก ๋์ผํ๋ค.
๋ ๋ฐฉ์ ๋ชจ๋ ๋ ๋ฌธ์์ด์ด ๋ด์ฉ์ ๋์ผํ์ง๋ฅผ ๋น๊ตํ๋ค.
๊ตณ์ด ๋์ค์ ์ด๋ค ๊ฒ ๋ ๋์ ์ฝ๋์ผ๊น๋ฅผ ๊ณ ๋ฏผํ๋ค๋ฉด, null์์ ์ฑ๊ณผ ๊ฐ๋ ์ฑ์ ๊ธฐ๋ฐํด ๊ฒฐ์ ํ๋ฉด ๋๋ค.
1. Null ์์ ์ฑ
๋ง์ฝ email์ด๋ userEmail ์ค ํ๋๊ฐ null์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด, null์ด ์๋ ๋ณ์๋ฅผ .equals() ๋ฉ์๋์ ํธ์ถ ๊ฐ์ฒด๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์์ ํ๋ค.
์๋ฅผ ๋ค์ด, email์ ํ์คํ๊ฒ null๊ฐ์ด ์๋์ง๋ง userEmail์ null๊ฐ์ผ ๊ฐ๋ฅ์ฑ์ด ์์ ๋, email.equals(userEmail) ์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข๋ค. ์๋ฐ์์๋ null ๊ฐ์ ๊ฐ์ง ๋ณ์์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด NullPointerException์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
2. ๊ฐ๋ ์ฑ
์ฝ๋์ ๊ฐ๋ ์ฑ์ ์ํด ํน์ ์์๋ฅผ ์ ํธํ ์ ์๋ค.
userEmail.equals(email)์ "์ฌ์ฉ์์ ์ด๋ฉ์ผ์ด ํน์ ์ด๋ฉ์ผ๊ณผ ๊ฐ์๊ฐ?" ๋ผ๋ ์ง๋ฌธ์ฒ๋ผ ์ฝํ ์ ์์ด, ๋ ์ง๊ด์ ์ผ ์ ์๋ค.
null์ด ๋ ์ ์๋ ๋ณ์๋ฅผ ๋น๊ตํ ๋ : Object.equals()
๋ง๋ถ์ฌ, null์ด ๋ ์ ์๋ ๋ณ์๋ฅผ ๋น๊ตํ๊ณ ์ถ๋ค๋ฉด Java ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Objects ์ ํธ๋ฆฌํฐ ํด๋์ค๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค.
Object.equals(email, userEmail)
Objects.equals(email, userEmail) ์ฌ์ฉํ๋ ๊ฑด ๋ ๋ณ์ ์ค ํ๋๋ ๋ ๋ค null์ผ ๊ฐ๋ฅ์ฑ์ด ์์ ๋ ์์ฃผ ์ข์ ๋ฐฉ๋ฒ์ด๋ค.
Java์ Objects ํด๋์ค์ ์๋ equals ๋ฉ์๋๋ ๋ ๊ฐ์ฒด๋ฅผ ์์ ํ๊ฒ ๋น๊ตํ๋ค. ์ด ๋ฉ์๋๋ ๋ ์ํฉ์์ true๋ฅผ ๋ฐํํ๋ค.
- ๋ ๊ฐ์ฒด๊ฐ ๋ชจ๋ null์ผ ๊ฒฝ์ฐ: Objects.equals๋ ๋ ๊ฐ์ฒด๊ฐ ๋ชจ๋ null์ผ ๋ true๋ฅผ ๋ฐํํ๋ค. ์ฆ, ๋ ๋ณ์๊ฐ ๋ชจ๋ null์ด๋ฉด ๊ฐ๋ค๊ณ ๋ณด๋ ๊ฒ์ด๋ค.
- ๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ๋: ์ด ๊ฒฝ์ฐ์๋ ๋ณดํต์ equals ๋ฉ์๋์ ๊ฐ์ด, ๋ ๊ฐ์ฒด์ ๋ด์ฉ์ด ๊ฐ์ ๋ true๋ฅผ ๋ฐํํ๋ค.
Objects.equals ๋ฉ์๋๋ฅผ ์ฐ๋ฉด null ์ฒ๋ฆฌ๋ฅผ ๋ฐ๋ก ํ์ง ์์๋ ๋ ๊ฐ์ฒด์ ๋๋ฑ์ฑ์ ์์ ํ๊ฒ ํ์ธํ ์ ์๋ค. ํนํ null์ด ๋ ์ ์๋ ๋ณ์๋ฅผ ๋ค๋ฃฐ ๋ ์ ์ฉํ๋ค. ์ด ๋ฉ์๋๋ NullPointerException์ ๋ฐ์์ํค์ง ์์ผ๋ฏ๋ก ์ฝ๋์ ์์ ์ฑ์ ๋์ด๋ ๋ฐ ์ข๋ค.