Stay organized with collections Save and categorize content based on your preferences.

public final class OptionalInt
extends Object



A container object which may or may not contain an int value. If a value is present, isPresent() returns true. If no value is present, the object is considered empty and isPresent() returns false.

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

Summary

Public methods

static OptionalInt empty()

Returns an empty OptionalInt instance.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this OptionalInt.

int getAsInt()

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

int hashCode()

Returns the hash code of the value, if present, otherwise 0 (zero) if no value is present.

void ifPresent(IntConsumer action)

If a value is present, performs the given action with the value, otherwise does nothing.

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.

boolean isEmpty()

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

boolean isPresent()

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

static OptionalInt of(int value)

Returns an OptionalInt describing the given value.

int orElse(int other)

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

int orElseGet(IntSupplier supplier)

If a value is present, returns the value, otherwise returns the result produced by the supplying function.

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

If a value is present, returns the value, otherwise throws an exception produced by the exception supplying function.

int orElseThrow()

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

IntStream stream()

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

String toString()

Returns a non-empty string representation of this OptionalInt suitable for debugging.

Inherited methods

From class java.lang.Object

Object clone()

Creates and returns a copy of this object.

boolean equals(Object obj)

Indicates whether some other object is "equal to" this one.

void finalize()

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

final Class<?> getClass()

Returns the runtime class of this Object.

int hashCode()

Returns a hash code value for the object.

final void notify()

Wakes up a single thread that is waiting on this object's monitor.

final void notifyAll()

Wakes up all threads that are waiting on this object's monitor.

String toString()

Returns a string representation of the object.

final void wait(long timeoutMillis, int nanos)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait(long timeoutMillis)

Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

final void wait()

Causes the current thread to wait until it is awakened, typically by being notified or interrupted.

Public methods

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
OptionalInt an empty OptionalInt

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 ==.
Parameters
obj Object: an object to be tested for equality
Returns
boolean true if the other object is "equal to" this object otherwise false

getAsInt

public int getAsInt ()

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

API Note:
Returns
int the value described by this OptionalInt
Throws
NoSuchElementException if no value is present

hashCode

public int hashCode ()

Returns the hash code of the value, if present, otherwise 0 (zero) if no value is present.

Returns
int hash code value of the present value or 0 if no value is present

ifPresent

public void ifPresent (IntConsumer action)

If a value is present, performs the given action with the value, otherwise does nothing.

Parameters
action IntConsumer: 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 IntConsumer: the action to be performed, if a value is present
emptyAction Runnable: 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.

isEmpty

public boolean isEmpty ()

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

Returns
boolean true if a value is not present, otherwise false

isPresent

public boolean isPresent ()

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

Returns
boolean true if a value is present, otherwise false

of

public static OptionalInt of (int value)

Returns an OptionalInt describing the given value.

Parameters
value int: the value to describe
Returns
OptionalInt an OptionalInt with the value present

orElse

public int orElse (int other)

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

Parameters
other int: the value to be returned, if no value is present
Returns
int 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 IntSupplier: the supplying function that produces a value to be returned
Returns
int 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 (Supplier<? extends X> exceptionSupplier)

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
Parameters
exceptionSupplier Supplier: the supplying function that produces an exception to be thrown
Returns
int the value, if present
Throws
if no value is present
NullPointerException if no value is present and the exception supplying function is null
Throwable

orElseThrow

public int orElseThrow ()

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

Returns
int the value described by this OptionalInt
Throws
NoSuchElementException if no value is present

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
IntStream the optional value as an IntStream

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.

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
String the string representation of this instance

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2023-02-08 UTC.