Memo/짧은 메모

[JAVA] Optional

생각없이 해도 생각보다 좋다. 2022. 10. 23. 13:21

Optional
>NPE(NullPointerException)
말 그대로 null 값이 할당되면 안되는 곳에 예상하지 못한 null 값이 할당되는 경우 발생하는 예외이다.
이를 방지하기 위해서는 null 값이 할당될 경우를 막아야하는데, 변수가 많을 경우 코드가 굉장히 복잡해진다.

다른 방법으로 아예 null을 할당할 수 있는 타입을 사용하면 NPE를 피할 수 있다.
Wrapper 클래스가 null을 할당할 수 있는 대표적인 타입이며, 그중에서도 Optional 클래스를 알아두면 좋다.

>Optional<T> 객체 생성
-Optional.empty()
: 값이 null인 경우 해당 메서드로 Optional의 객체를 생성할 수 있다.
-Optional.of()
: 값이 null이 절대 아닌 경우, 해당 메서드로 Optional 객체를 생성할 수 있다.
: 값은 of메서드의 인자로 제공한다.
-Optional.ofNullable
: 값이 null일 수도 있고 null이 아닐 수도 있을 경우, 해당 메서드로 Optional의 객체를 생성할 수 있다.
: 추가로 orElse(), orElseGet() 메서드를 통해 값을 확인할 수 있다.

>Optional을 조사한 이유
: Spring Boot를 공부하며 API 계층의 Controller를 작성하는데, Patch를 다루는 DTO의 유효성 검증에서 Null을 받고 못받고의 유무로 에러가 난 경우가 있었다. 다른 Wrapper 클래스로 해결했었지만 추가적으로 알아보기 위하여 공부 도중 Optional을 쓰는 것을 확인했다.

 

>참고 링크

https://mangkyu.tistory.com/70