Null을 반환받는경우 NullPoniterException 발생할 수 있다.
원래 Null체크 하려면 if문으로 검증을 해야하는 지저분함!
Optional을 이용하여 null을 깔끔하게 다룰 수 있습니다.
Null을 반환되도 에러가 안뜨게 Null을 다루는 클래스
Optional은 Null을 간접적으로 다루는 래퍼클래스 입니다.
T 타입 객체의 래퍼클래스 - Optional< T >
- 장점
- NullPointerException 핸들링
- if문 널 검증 로직 간소화
T 타입 객체의 래퍼클래스 - Optional< T >
// String a = null;
String a = Optional.empty();
String str ="abc";
---
Optional<String> optVal = Optional.of(str);
---
Optional<String> optVal = Optional.of("abc");
Optional<String> optVal = Optional.of(null); // NullPointerException 발생
Optional<String> optVal = Optional.of(null); // O K
get()
orElse()
orElseGet()
orElseThrow()
Optional<String> optVal = Optional.of("abc");
---
String str1 = optVal.get(); // null 이면 예외발생
String str2 = optVal.orElse(""); // null 이면 ""를 반환
String str3 = optVal.orElseGet(String::new) // 람다식 사용 가능 new String() 값 반환
String str4 = optVal.orElseThrow(NullpointerException::new); // null이면 예외발생
isPresent()