Optional<T>

SlowAnd·2023년 12월 31일
0

Today I Learned Java

목록 보기
3/8

Optional< T > ??

Null을 반환받는경우 NullPoniterException 발생할 수 있다.
원래 Null체크 하려면 if문으로 검증을 해야하는 지저분함!

Optional을 이용하여 null을 깔끔하게 다룰 수 있습니다.
Null을 반환되도 에러가 안뜨게 Null을 다루는 클래스

Optional은 Null을 간접적으로 다루는 래퍼클래스 입니다.
T 타입 객체의 래퍼클래스 - Optional< T >

  • 장점
    - NullPointerException 핸들링
    - if문 널 검증 로직 간소화

T 타입 객체의 래퍼클래스 - Optional< T >

null 초기화시 Optional 사용하기

// String a = null; 
String  a = Optional.empty();

Optional< T > 객체 생성하기

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

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

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이면 예외발생

Optional< T > null 존재여부 boolean값 반환

isPresent()

Optinal 래퍼 클래스 성능올리기

OptionalInt,OptionalLong,OptionalDouble

0개의 댓글