OptionalDouble — double 값이 있을 수도 없을 수도 있는 컨테이너
OptionalDouble — double 값이 있을 수도 없을 수도 있는 컨테이너
OptionalDouble은 double 값을 포함하거나 포함하지 않을 수 있는 컨테이너 객체예요. 값이 있으면 isPresent()가 true, 없으면 false를 반환해요. orElse()(기본값), ifPresent()(동작) 같은 추가 메서드를 제공해요. Optional<T>의 double 기본형 전문화예요.
본문
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()은 디버깅용 문자열을 반환해요.