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);