λ€μμ importνκ³ μ¬μ©νμ.
import java.util.Optional;
μ°Έμ‘°: https://jdm.kr/blog/234
μλ°μμλ λ°ν νμ
μΌλ‘ Optional<T>
μ μ¬μ©ν μ μλ€.
μ΄ Optionalμ μ£Όλ νΉμ§μ λ°λ‘ 'Null κ° λ°νμ λμ'νλ μλ―Έκ° μλ€.
μ κ΅μ μλ ν΄μ₯κ΅ λ§€μ₯μ μ μ₯νλ κ°λ¨ν Map
μ΄ μλ€κ³ ν΄λ³΄μ.
맀μ₯μ κ³ μ Id
λ₯Ό κ°μ§κ³ 맀μ₯μ Store
κ°μ²΄λ₯Ό λ°μμ€λ ν¨μμ΄λ€.
Map<Long, Store> map = new HashMap<>();
public Optional<Store> findById(Long id) {
return Optional.ofNullable(map.get(id));
}
λ¬Όλ‘ μ°Ύλ Id
μ ν΄λΉνλ 맀μ₯ κ°μ²΄κ° μμ΄μ μ μμ μΌλ‘ κ°μ²΄λ₯Ό λ°νν μλ μλ€.
νμ§λ§ λ°μμ¨κ² NULLμΌμλ μλλ°, μ΄λ .ofNullable
μ μ¬μ©νλ©΄ λ°μνλ NullPointerException
μμΈλ₯Ό λ§μ μ μλ€.
λ°νν κ°μ΄
- Nullμ΄ μλλ©΄
Store
κ°μ²΄λ₯Ό κ°μ§λOptional
κ°μ²΄ λ°ν
- Nullμ΄λ©΄
- λΉμ΄μλ
Optional
κ°μ²΄ λ°ν
- λΉμ΄μλ
μμμ 보μλ―μ΄ Optional
κ°μ²΄ μμ κ°μ²΄μ μ κ·Όν μμκ° λ°μνλ©°,
μ΄λ μ¬λ¬κ°μ§ λ©μλλ₯Ό ν΅ν΄μ μ΄λ£¨μ΄μ§ μ μλ€.
μμμ 보μλ―μ΄ μ΄μ°λμλ λ°νλλ κ°μ Optional
κ°μ²΄μ΄λ€.
λ°λΌμ Optional
μμ κ°μ²΄μ μ κ·Όμν΄μΌνλλ°,
.get()
μ μ¬μ©νλ©΄ μμ μλ κ°μ²΄λ₯Ό κΊΌλΌ μ μλ€.
μμμ μ μν findById(Ling id)
λ©μλλ₯Ό μ¬μ©νλ€κ³ κ°μ νμλ,
public void output(Long id){
Store store = findById(id).get();
}
findById
μ λ°ννμ΄ Optional
κ°μ²΄μ΄λ©°, μ΄μ store
κ°μ²΄ μμ μ ν©ν κ° νΉμ Null
κ°μ΄ λ€μ΄μμ κ²μ΄λ€.