OptionalLong — long 값이 있을 수도 없을 수도 있는 컨테이너
OptionalLong — long 값이 있을 수도 없을 수도 있는 컨테이너
OptionalLong은 long 값을 포함하거나 포함하지 않을 수 있는 컨테이너 객체예요. 값이 있으면 isPresent()가 true, 없으면 false를 반환해요. orElse()(기본값), ifPresent()(동작) 같은 추가 메서드를 제공해요. Optional<T>의 long 기본형 전문화예요.
본문
public final class OptionalLong extends Object
값 기반 클래스로, 같은 인스턴스를 동기화에 쓰면 예측할 수 없는 동작이 발생할 수 있어요.
팩토리
empty()— 빈OptionalLong을 반환해요.of(long value)— 주어진 값을 가진OptionalLong을 반환해요.
조회와 처리
getAsLong()— 값이 있으면 반환하고, 없으면NoSuchElementException을 던져요.isPresent()/isEmpty()— 값 존재/부재 여부를 반환해요.ifPresent(LongConsumer)— 값이 있으면 동작을 수행해요.ifPresentOrElse(LongConsumer, Runnable)— 값이 있으면 첫 동작, 없으면 빈 기반 동작을 수행해요.stream()— 값이 있으면LongStream, 없으면 빈LongStream을 반환해요.
값 얻기
orElse(long other)— 값이 없으면other를 반환해요.orElseGet(LongSupplier)— 값이 없으면 공급 결과를 반환해요.orElseThrow()— 값이 없으면NoSuchElementException을 던져요.orElseThrow(Supplier)— 값이 없으면 공급 함수가 만든 예외를 던져요.
기타
equals(Object)는 둘 다 값이 없거나 값들이 ==로 같은 OptionalLong끼리 true를 반환해요. hashCode()는 값의 해시코드(없으면 0)를 반환해요. toString()은 디버깅용 문자열을 반환해요.