Module java.base
Package java.util

Class OptionalLong



  • public final classOptionalLongextendsObject
    A container object which may or may not contain along value. If a value is present,isPresent() returnstrue andgetAsLong() returns the value.

    Additional methods that depend on the presence or absence of a contained value are provided, such asorElse() (returns a default value if no value is present) andifPresent() (performs an action if a value is present).

    This is avalue-based class; use of identity-sensitive operations (including reference equality (==), identity hash code, or synchronization) on instances ofOptionalLong may have unpredictable results and should be avoided.

    Since:
    1.8
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      staticOptionalLongempty()
      Returns an emptyOptionalLong instance.
      booleanequals(Object obj)
      Indicates whether some other object is "equal to" thisOptionalLong.
      longgetAsLong()
      If a value is present, returns the value, otherwise throwsNoSuchElementException.
      inthashCode()
      Returns the hash code of the value, if present, otherwise0 (zero) if no value is present.
      voidifPresent(LongConsumer action)
      If a value is present, performs the given action with the value, otherwise does nothing.
      voidifPresentOrElse(LongConsumer action,Runnable emptyAction)
      If a value is present, performs the given action with the value, otherwise performs the given empty-based action.
      booleanisPresent()
      If a value is present, returnstrue, otherwisefalse.
      staticOptionalLongof(long value)
      Returns anOptionalLong describing the given value.
      longorElse(long other)
      If a value is present, returns the value, otherwise returnsother.
      longorElseGet(LongSupplier supplier)
      If a value is present, returns the value, otherwise returns the result produced by the supplying function.
      <X extendsThrowable>
      long
      orElseThrow(Supplier<? extends X> exceptionSupplier)
      If a value is present, returns the value, otherwise throws an exception produced by the exception supplying function.
      LongStreamstream()
      If a value is present, returns a sequentialLongStream containing only that value, otherwise returns an emptyLongStream.
      StringtoString()
      Returns a non-empty string representation of thisOptionalLong suitable for debugging.
    • Method Detail

      • empty

        public static OptionalLong empty()
        Returns an emptyOptionalLong instance. No value is present for thisOptionalLong.
        API Note:
        Though it may be tempting to do so, avoid testing if an object is empty by comparing with== against instances returned byOptionalLong.empty(). There is no guarantee that it is a singleton. Instead, useisPresent().
        Returns:
        an emptyOptionalLong.
      • of

        public static OptionalLong of(long value)
        Returns anOptionalLong describing the given value.
        Parameters:
        value - the value to describe
        Returns:
        anOptionalLong with the value present
      • getAsLong

        public long getAsLong()
        If a value is present, returns the value, otherwise throwsNoSuchElementException.
        Returns:
        the value described by thisOptionalLong
        Throws:
        NoSuchElementException - if no value is present
        See Also:
        isPresent()
      • isPresent

        public boolean isPresent()
        If a value is present, returnstrue, otherwisefalse.
        Returns:
        true if a value is present, otherwisefalse
      • ifPresent

        public void ifPresent(LongConsumer action)
        If a value is present, performs the given action with the value, otherwise does nothing.
        Parameters:
        action - the action to be performed, if a value is present
        Throws:
        NullPointerException - if value is present and the given action isnull
      • ifPresentOrElse

        public void ifPresentOrElse(LongConsumer action,Runnable emptyAction)
        If a value is present, performs the given action with the value, otherwise performs the given empty-based action.
        Parameters:
        action - the action to be performed, if a value is present
        emptyAction - the empty-based action to be performed, if no value is present
        Throws:
        NullPointerException - if a value is present and the given action isnull, or no value is present and the given empty-based action isnull.
        Since:
        9
      • stream

        public LongStream stream()
        If a value is present, returns a sequentialLongStream containing only that value, otherwise returns an emptyLongStream.
        API Note:
        This method can be used to transform aStream of optional longs to anLongStream of present longs:
             Stream<OptionalLong> os = ..     LongStream s = os.flatMapToLong(OptionalLong::stream)
        Returns:
        the optional value as anLongStream
        Since:
        9
      • orElse

        public long orElse(long other)
        If a value is present, returns the value, otherwise returnsother.
        Parameters:
        other - the value to be returned, if no value is present
        Returns:
        the value, if present, otherwiseother
      • orElseGet

        public long orElseGet(LongSupplier supplier)
        If a value is present, returns the value, otherwise returns the result produced by the supplying function.
        Parameters:
        supplier - the supplying function that produces a value to be returned
        Returns:
        the value, if present, otherwise the result produced by the supplying function
        Throws:
        NullPointerException - if no value is present and the supplying function isnull
      • orElseThrow

        public <X extendsThrowable> long orElseThrow(Supplier<? extends X> exceptionSupplier)                                       throws X extendsThrowable
        If a value is present, returns the value, otherwise throws an exception produced by the exception supplying function.
        API Note:
        A method reference to the exception constructor with an empty argument list can be used as the supplier. For example,IllegalStateException::new
        Type Parameters:
        X - Type of the exception to be thrown
        Parameters:
        exceptionSupplier - the supplying function that produces an exception to be thrown
        Returns:
        the value, if present
        Throws:
        X - if no value is present
        NullPointerException - if no value is present and the exception supplying function isnull
        X extendsThrowable
      • equals

        public boolean equals(Object obj)
        Indicates whether some other object is "equal to" thisOptionalLong. The other object is considered equal if:
        • it is also anOptionalLong and;
        • both instances have no value present or;
        • the present values are "equal to" each other via==.
        Overrides:
        equals in class Object
        Parameters:
        obj - an object to be tested for equality
        Returns:
        true if the other object is "equal to" this object otherwisefalse
        See Also:
        Object.hashCode(),HashMap
      • toString

        public String toString()
        Returns a non-empty string representation of thisOptionalLong suitable for debugging. The exact presentation format is unspecified and may vary between implementations and versions.
        Overrides:
        toString in class Object
        Implementation Requirements:
        If a value is present the result must include its string representation in the result. Empty and presentOptionalLongs must be unambiguously differentiable.
        Returns:
        the string representation of this instance