forked from whiteship/java8
-
Notifications
You must be signed in to change notification settings - Fork 0
Optional API
Jeonghyun Kang edited this page May 23, 2022
·
1 revision
Optional<OnlineClass> optional = springClasses.stream()
.filter(oc -> oc.getTitle().startsWith("spring"))
.findFirst();OnlineClass onlineClass = optional.get();if (optional.isPresent())
OnlineClass onlineClass1 = optional.get();OnlineClass onlineClass2 = optional.orElse(createNewClass());OnlineClass onlineClass3 = optional.orElseGet(App::createNewClass);OnlineClass onlineClass4 = optional.orElseThrow(IllegalStateException::new);- return type은 Optional 타입
Optional<OnlineClass> onlineClass5 = optional.filter(oc -> !oc.isClosed());- Optional이 두 겹인 상황에서는
Optional<Optional<Progress>> progress = optional.map(OnlineClass::getProgress);
Optional<Progress> optionalProgress1 = progress.orElse(Optional.empty());- flatMap을 사용하여 한 번에 처리가 가능하다.
Optional<Progress> optionalProgress2 = optional.flatMap(OnlineClass::getProgress);