Search
🧬

Optional<T>

태그
java

Optional<T>이란

T 타입 객체의 래퍼 클래스로써 간접적으로 null 다룸
모든 종류의 객체 저장 가능 null 포함
→ null을 직접 다루는 것은 위험 NullPointException
→ null을 직접 다루면 null 체크를 해주어야함 그러면 코드가 지저분

Optional<T> 객체 생성하기

Optional.of(str)
Optional.of(”abc”)
Optional.of(null) ← NullPointerException 발생
Optional.ofNullable(null) ← ok
String 참조 변수: 값 주소 ->Optional 참조 변수: Optional 객체 주소 -> Optional 객체(값 주소) ->
Java
복사
→ Optional 참조 변수는 절대 null을 가질 수 없는 구조
Optional<String> optVal = null; ← x 널로 초기화는 바람직하지 않음
Optional<String> optVal = Optional.empty(); ← 빈 객체로 초기화

Optional<T> 객체의 값 가져오기

optVal.get() ← optVal에 저장된 값을 반환. null이면 예외 발생
optVal.orElse(””) ← optVal에 저장된 값이 null일 때는 “”를 반환
optVal.orElseGrt(String::new) ← 람다식 사용 가능 ()→new String()
optVal.orElseThrow(NullPointerException::new) ← 널이면 예외 발생

isPresent

Optional 객체의 값이 null이면 false, 아니면 true를 반환
Optional.ofNullable(str).ifPresent(System.out::println)
Java
복사
→ 널이 아닐때만 수행