๐ฅ๏ธ ๋ฐฑ์๋/Java
[ch.14] Optional<T>์ OptionalInt
OR15A
2023. 11. 20. 14:54
Optional<T>
- ์ง๋ค๋ฆญ ํด๋์ค. Tํ์ ์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ธ๋ ๋ํผํด๋์ค.
- Optionalํ์ ์ ๊ฐ์ฒด์๋ ๋ชจ๋ ํ์ ์ ์ฐธ์กฐ๋ณ์๋ฅผ ๋ด์ ์ ์์.
Optional ๊ฐ์ฒด์์ฑ
Optional<T>ํ์ ์ ์ฐธ์กฐ๋ณ์๋ฅผ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํํ๊ธฐ
- Optional.<T>empty(): T ํ์ ์ ๋น Optional ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ public static ๋ฉ์๋.
Optional ๊ฐ์ฒด์ ์ ์ฅ๋ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ
Optional ๊ฐ์ฒด์ ์ฌ์ฉ๊ฐ๋ฅํ ์คํธ๋ฆผ ๋ฉ์๋
- filter( ), map( ), flatMap( )
- Optional๊ฐ์ด null์ด๋ฉด ์ด ๋ฉ์๋๋ค์ ์๋ฌด์ผ๋ ํ์ง ์์.
boolean์ผ๋ก ๋ฐํํ๋ ๋ฉ์๋
Stream์๋ฉ์๋์ค Optional<T>๋ฅผ ๋ฐํํ๋ ๊ฒ
- ๊ณตํต์ : null์ผ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ํฐ ๊ฒ๋ค, ์คํธ๋ฆผ์ด ๋น์ด์์ ์ ์๊ธฐ ๋๋ฌธ.
OptionalInt, OptionalLong, OptionalDouble
- IntStream๊ณผ ๊ฐ์ ๊ธฐ๋ณธํ ์คํธ๋ฆผ์๋ Optional๋ ๊ธฐ๋ณธํ์ ๊ฐ์ผ๋ก ํ๋ ๊ฒ์ ๋ฐํํจ. (OptionalInt, OptionalDouble ๋ฑ)
- ๊ฐ์ฒด์ ์ ์ฅ๋ ๊ฐ์ ๊บผ๋ผ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋๊ฐ ์ฝ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ฃผ์ํ ๊ฒ.
<๊ฐ์ฒดํ์ > vs <๊ฐ ๋ฐํ ๋ฉ์๋>
OptionalInt.of( 0 ) vs OptionalInt.empty( )
Optional.ofNullable(null); vs Optional.empty( );