OptionalInt (Java SE 12 & JDK 12 )

    • Method Detail

      • empty

        public static OptionalInt empty()

        Returns an empty OptionalInt instance. No value is present for this OptionalInt.

        API Note:
        Though it may be tempting to do so, avoid testing if an object is empty by comparing with == against instances returned by OptionalInt.empty(). There is no guarantee that it is a singleton. Instead, use isPresent().
        Returns:
        an empty OptionalInt
      • of

        public static OptionalInt of​(int value)

        Returns an OptionalInt describing the given value.

        Parameters:
        value - the value to describe
        Returns:
        an OptionalInt with the value present
      • getAsInt

        public int getAsInt()

        If a value is present, returns the value, otherwise throws NoSuchElementException.

        API Note:
        The preferred alternative to this method is orElseThrow().
        Returns:
        the value described by this OptionalInt
        Throws:
        NoSuchElementException - if no value is present
      • isPresent

        public boolean isPresent()

        If a value is present, returns true, otherwise false.

        Returns:
        true if a value is present, otherwise false
      • isEmpty

        public boolean isEmpty()

        If a value is not present, returns true, otherwise false.

        Returns:
        true if a value is not present, otherwise false
        Since:
        11
      • ifPresent

        public void ifPresent​(IntConsumer 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 is null
      • ifPresentOrElse

        public void ifPresentOrElse​(IntConsumer 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 is null, or no value is present and the given empty-based action is null.
        Since:
        9
      • stream

        public IntStream stream()

        If a value is present, returns a sequential IntStream containing only that value, otherwise returns an empty IntStream.

        API Note:
        This method can be used to transform a Stream of optional integers to an IntStream of present integers:
        
             Stream<OptionalInt> os = ..
             IntStream s = os.flatMapToInt(OptionalInt::stream)
         
        Returns:
        the optional value as an IntStream
        Since:
        9
      • orElse

        public int orElse​(int other)

        If a value is present, returns the value, otherwise returns other.

        Parameters:
        other - the value to be returned, if no value is present
        Returns:
        the value, if present, otherwise other
      • orElseGet

        public int orElseGet​(IntSupplier 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 is null
      • orElseThrow

        public int orElseThrow()

        If a value is present, returns the value, otherwise throws NoSuchElementException.

        Returns:
        the value described by this OptionalInt
        Throws:
        NoSuchElementException - if no value is present
        Since:
        10
      • orElseThrow

        public <X extends Throwable> int orElseThrow​(Supplier<? extends X> exceptionSupplier)
                                              throws X extends Throwable

        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 is null
        X extends Throwable
      • equals

        public boolean equals​(Object obj)

        Indicates whether some other object is "equal to" this OptionalInt. The other object is considered equal if:

        • it is also an OptionalInt 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 otherwise false
        See Also:
        Object.hashCode(), HashMap
      • toString

        public String toString()

        Returns a non-empty string representation of this OptionalInt 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 present OptionalInts must be unambiguously differentiable.
        Returns:
        the string representation of this instance