java optional이란?
spring 강의를 듣다가 optional이라는 클래스를 알게 되었다. 신기하고 중요한 클래스같아서 정리시작!
optional이란?
Java8에서 지원하는 클래스. 개발을 할 때 NPE(NullPointerException)이 자주 발생하는데, 이를 피하기 위해 보통 null 검사 로직을 추가한다. 하지만 null검사를 해야하는 변수가 많으면 코드가 복잡해지면서 로직도 번거로워진다. Optional 은 null이 올 수 있는 값을 감싸는 Wrapper 클래스로, 참조하더라도 NPE가 발생하지 않게 도와준다.
optional 활용하기
-
optional.empty() : 값이 비어있는 경우
Optional<String> optional = Optional.empty(); System.out.println(optional); // optional.empty System.out.println(optional.isPresent()); // false
-
optional.of() : 값이 null이 아닌 경우
Optioanl<String> optional = Optional.if("myNAme");
*null로 저장하려고 하면 NPE가 발생한다.
-
optional.ofNullable() : 값이 null일 수도 아닐 수도 있는 경우
Optional<String> optional = optional.ofNullable(getName());
-
optional.orElse() : 값이 없다면 디폴트값 리턴
Optional<String> optional = optional.ofNullable(getName()).orElse("hi");
-
optional.isPresent() : optional값이 있으면 동작
Optional<String> result = repo.findByName(getName()); repo.ifPresent(res -> { throw new exception(); });
이 외에도 여러 함수가 있는 것 같은데 사용할때마다 추가해야겠다. 🤓
참고: https://mangkyu.tistory.com/70
Author And Source
이 문제에 관하여(java optional이란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wjdgkrud/java-optional이란저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)