개발 무지렁이

[Java] 값의 존재여부를 나타내는 컨테이너 클래스, Optional 본문

Backend/자바

[Java] 값의 존재여부를 나타내는 컨테이너 클래스, Optional

Gaejirang-e 2023. 9. 11. 21:20

𐁍 Optional
값의 존재 여부를 나타내는 컨테이너 클래스를 말한다.
null로 인한 예외(ex. NPE)를 방지하고자 Optional로 감싸
이 객체의 내장메서드를 사용하여 다양한 동작을 할 수 있다.

𖠃 Optinal 내장 메서드
(1) Optional.of(T value)
: value가 null이 아니라면 해당 값으로 채워진 Optional 객체를 반환하지만,
null이라면 NPE(NullPointerException) 발생

(2) Optional.ofNullable(T value)
: value가 null이 아니라면 해당 값으로 채워진 Optional 객체를 반환하고,
null이여도 빈 Optional 객체를 반환한다. (null이어도 감쌀 수 있다.)
⚠️ null이 될 가능성이 있는 경우 Optional.ofNullable() 사용

(3) Optional.empty()
: 항상 빈 Optional 객체를 반환
(값이 없음을 표현)

(4) .isPresent()
: null인지 아닌지 여부를 반환

(5) .get() / .orElse() / .orElseThrow()
.get(): 값이 존재하면 해당 값으로 채워진 Optional 객체 반환, null이면 NoSuchElementException 예외 발생
.orElse(): 값이 존재하면 해당 값으로 채워진 Optional 객체 반환, null이면 인수로 전달된 값 반환
.orElse(): 값이 존재하면 해당 값으로 채워진 Optional 객체 반환, null이면 인수로 전달된 예외 발생
Comments