기초/Java
Java 기초 ) Optional 이란
디깅
2023. 5. 16. 09:53
728x90
Optional<T>
java에서 NullPointerExcepion을 방지하는 wrapper class이다.
Optional class가 가진 메소드 예시
Optional 생성하는 방법
Optional.empty() : null값으로 생성
Optional<String> exampleText = Optional.empty();
optional은 static으로 empty객체를 미리 생성해서 가지고 있다.
따라서 빈 객체를 여러 번 생성할 때도 이 empty객체를 공유함으로 메모리를 절약해서 사용할 수 있다.
Optional.of() : null이 아닌 값으로 생성
Optional<String> exampleText = Optional.of("example");
Optional.of()로 Null을 저장하려고하면 NullPointerException이 발생한다.
Optional.ofNullable() : 값이 null일 수도, 아닐 수도 있는 경우의 생성
Optional<String> exampleText = Optional.ofNullable(getName());
String name = optional.orElse("everyone")
orElse 혹은 orElseGet으로 값을 가져올 수 있다.
이 때 null일경우 optional이 안전하게 처리해준다.
.orElseThrow() : 바로 예외처리
if else문 대신 orElseThrow를 통해 코드의 가독성을 높이고, 간단하게 처리할 수 있다.
return exampleRepository.findById(exampleId)
.orElseThrow(() -> new noExampleException());
반응형