OptionalDouble — double 값이 있을 수도 없을 수도 있는 컨테이너

OptionalDouble — double 값이 있을 수도 없을 수도 있는 컨테이너

OptionalDoubledouble 값을 포함하거나 포함하지 않을 수 있는 컨테이너 객체예요. 값이 있으면 isPresent()true, 없으면 false를 반환해요. orElse()(기본값), ifPresent()(동작) 같은 추가 메서드를 제공해요. Optional<T>double 기본형 전문화예요.

출처: Java API Reference

본문

public final class OptionalDouble extends Object

값 기반 클래스로, 같은 인스턴스를 동기화에 쓰면 예측할 수 없는 동작이 발생할 수 있어요.

팩토리

  • empty() — 빈 OptionalDouble을 반환해요.
  • of(double value) — 주어진 값을 가진 OptionalDouble을 반환해요.

조회와 처리

  • getAsDouble() — 값이 있으면 반환하고, 없으면 NoSuchElementException을 던져요.
  • isPresent() / isEmpty() — 값 존재/부재 여부를 반환해요.
  • ifPresent(DoubleConsumer) — 값이 있으면 동작을 수행해요.
  • ifPresentOrElse(DoubleConsumer, Runnable) — 값이 있으면 첫 동작, 없으면 빈 기반 동작을 수행해요.
  • stream() — 값이 있으면 DoubleStream, 없으면 빈 DoubleStream을 반환해요.

값 얻기

  • orElse(double other) — 값이 없으면 other를 반환해요.
  • orElseGet(DoubleSupplier) — 값이 없으면 공급 결과를 반환해요.
  • orElseThrow() — 값이 없으면 NoSuchElementException을 던져요.
  • orElseThrow(Supplier) — 값이 없으면 공급 함수가 만든 예외를 던져요.

기타

equals(Object)는 둘 다 값이 없거나 값들이 Double.compare() == 0으로 같은 OptionalDouble끼리 true를 반환해요. hashCode()는 값의 해시코드(없으면 0)를 반환해요. toString()은 디버깅용 문자열을 반환해요.

더 알아보기 (Learn more)