물건을 찾을 때, 그 물건이 있을 수도 있고 없을 수도 있는 상황을 생각해보면 Optional<T>를 쉽게 이해 할 수 있습니다. 물건을 찾을 때, 해당 물건이 있으면 "여기 있어요"라고 말하고, 없다면 "죄송하지만 없네요"라고 말할 수 있습니다.
Optional 객체 생성:
Optional.of(value)
: 값이 있는 경우 Optional 객체를 생성합니다.Optional.empty()
: 값이 없는 경우 빈 Optional 객체를 생성합니다.값 접근:
orElse(defaultValue)
: 값이 있으면 그 값을 반환하고, 없으면 기본값을 반환합니다.ifPresent(consumer)
: 값이 존재하는 경우에만 주어진 동작(consumer)을 수행합니다.값 확인 및 추출:
isPresent()
: 값의 존재 여부를 확인합니다.get()
: 값이 있는 경우 그 값을 반환합니다.NoSuchElementException
을 발생시킬 수 있으므로 조심해야 합니다.Optional<T>
을 사용하면 값이 존재하지 않을 수 있는 상황을 명시적으로 다룰 수 있습니다. 이를 통해 NullPointerException과 같은 예외를 방지하고 안전한 코드를 작성할 수 있습니다. 값을 다룰 때 매번 null 체크를 하지 않고 Optional
을 사용하여 코드를 간결하게 작성할 수 있습니다.