인프런의 더자바, JAVA8 강의를 들으며 정리한 내용입니다.
Optional 만들기
Optional.of() : null이 안나올때 사용
Optional.ofNullable() : null이 올수도 있을때
Optional.empty() : null을 담고 있는,비어있는 Optional 객체 받아올때 사용
Optional에 값이 있는지 없는지 확인하기
isPresent()
isEmpty() (Java 11부터 제공)
List<B_OnlineClass> classes1 = new ArrayList<>();
classes1.add(new B_OnlineClass(1,"spring boot",true));
classes1.add(new B_OnlineClass(2,"study with me",false));
classes1.add(new B_OnlineClass(3,"JPA",true));
Optional<B_OnlineClass> optional = classes1.stream()
.filter(oc -> oc.getTitle().startsWith("ss"))
.findFirst();
boolean present = optional.isPresent();
System.out.println(present); //false
Optional에 있는 값 가져오기
get() : 비어있을때는 NoSuchElementException
Optional에 값이 있는 경우에 그 값을 가지고 ~~를 하라.
ifPresent(Consumer)
optional.ifPresent(oc -> System.out.println(oc.getTitle()));
B_OnlineClass b_onlineClass = optional.orElse(new B_OnlineClass(6,"sss",true));
System.out.println(b_onlineClass.getTitle()); //sss
B_OnlineClass b_onlineClass3 = optional.orElseThrow(IllegalStateException::new); // Exception in thread "main" java.lang.IllegalStateException
System.out.println(b_onlineClass3.getTitle());