Last updated
Last updated
(์ ๋ค๋ฆญ) T ํ์ ๊ฐ์ฒด์ Wrapper Class
๋ชจ๋ ์ข ๋ฅ์ ๊ฐ์ฒด ์ ์ฅ ๊ฐ๋ฅ
null๋ ์ ์ฅ ๊ฐ๋ฅํ์ง๋ง ์ ์ฅํ์ง ์๋ ๊ฒ์ด ์ข์
์ ๋น์ด Optional์ ๋ฑ์ฅ ๊ณ๊ธฐ๊ฐ null์ ์ง์ ๋ค๋ฃจ๋ ๊ฒ์ ์ํ์ฑ(NullPointerException) ํด๊ฒฐ์ ์ํจ์
Optional์ ํตํด null์ ๊ฐ์ ์ ์ผ๋ก ๋ค๋ฃจ๊ธฐ ์ํด ๊ฐ์(Wrap)
๋ด๋ถ์ ์ผ๋ก ์กฐ๊ฑด๋ฌธ ํฌํจํ๋ ํจ์ ์ง์ํด if ์์ด null ์ฒดํฌ ๊ฐ๋ฅ
null์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ณ์๋ง๋ค if๋ก ์ฒดํฌํ๋ฉด ์ฝ๋๊ฐ ์ง์ ๋ถํด์ง
์์ฑ ๋ฉ์๋
Optional<T> of(T t)
, Optional<T> ofNullable(T t)
of๋ ์ ๋ฌ๊ฐ์ด null์ด๋ฉด NullPointerException
๋ฐ์
Optional ์์ฒด๊ฐ null์ ๊ฐ์ธ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฒ์ด๋ฏ๋ก ์ฃผ๋ก ofNullable
์ฌ์ฉ์ด ๋ฐ๋์ง
Optional<T> Optional.empty()
Optional ๋ด value๊ฐ null์ธ Optional ๊ฐ์ฒด ์์ฑ
์กฐํ ๋ฉ์๋
T get()
๊ฐ ๋ฐํ
value๊ฐ null์ด๋ฉด ์์ธ ๋ฐ์
T orElse(T t)
๊ฐ ๋ฐํ
์์ผ๋ฉด ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ ๊ฐ ๋ฐํ
T orElseGet(Supplier<T> s)
๊ฐ ๋ฐํ
์์ผ๋ฉด ์ ๋ฌ๋ ๋๋ค์์ ๊ฒฐ๊ณผ๊ฐ ๋ฐํ
T orElseThrow(Exception e)
๊ฐ ๋ฐํ
์์ผ๋ฉด ์ ๋ฌ๋ ์์ธ ๋ฐ์
value์ null ์ฌ๋ถ์ ๋ฐ๋ฅธ ๋ถ๊ธฐ ๋ฉ์๋
boolean isPresent()
์์ผ๋ฉด true, ์์ผ๋ฉด false
void ifPresent(Consumer<T> c)
์์ผ๋ฉด value์ ์ ๋ฌ๋ ๋๋ค์ ์ ์ฉ
๊ธฐ๋ณธํ ๋ณ์๋ฅผ ๊ฐ์ธ๋ Wrapper ํด๋์ค
value๋ ์ต์ด๋ก 0์ผ๋ก ์ด๊ธฐํ
value๊ฐ ์ค์ ๋ก 0์ผ ๋์ empty์ผ ๋๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด isPresent๋ผ๋ ๋ณ์ ์กด์ฌ
empty๋ฉด value == 0์ด๊ณ isPresent == false
0์ด๋ฉด value == 0์ด๊ณ isPresent == true
๋ค์์ ๊ฒ๋ค์ด ์กด์ฌ
OptionalInt
OptionalLong
OptionalDouble