- java.lang.Object
-
- java.util.OptionalInt
-
public final class OptionalInt extends Object
A container object which may or may not contain anintvalue. If a value is present,isPresent()returnstrue. If no value is present, the object is considered empty andisPresent()returnsfalse.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) andifPresent()(performs an action if a value is present).This is a value-based class; use of identity-sensitive operations (including reference equality (
==), identity hash code, or synchronization) on instances ofOptionalIntmay have unpredictable results and should be avoided.- API Note:
OptionalIntis primarily intended for use as a method return type where there is a clear need to represent "no result." A variable whose type isOptionalIntshould never itself benull; it should always point to anOptionalIntinstance.- Since:
- 1.8
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static OptionalIntempty()Returns an emptyOptionalIntinstance.booleanequals(Object obj)Indicates whether some other object is "equal to" thisOptionalInt.intgetAsInt()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(IntConsumer action)If a value is present, performs the given action with the value, otherwise does nothing.voidifPresentOrElse(IntConsumer action, Runnable emptyAction)If a value is present, performs the given action with the value, otherwise performs the given empty-based action.booleanisEmpty()If a value is not present, returnstrue, otherwisefalse.booleanisPresent()If a value is present, returnstrue, otherwisefalse.static OptionalIntof(int value)Returns anOptionalIntdescribing the given value.intorElse(int other)If a value is present, returns the value, otherwise returnsother.intorElseGet(IntSupplier supplier)If a value is present, returns the value, otherwise returns the result produced by the supplying function.intorElseThrow()If a value is present, returns the value, otherwise throwsNoSuchElementException.<X extends Throwable>
intorElseThrow(Supplier<? extends X> exceptionSupplier)If a value is present, returns the value, otherwise throws an exception produced by the exception supplying function.IntStreamstream()If a value is present, returns a sequentialIntStreamcontaining only that value, otherwise returns an emptyIntStream.StringtoString()Returns a non-empty string representation of thisOptionalIntsuitable for debugging.
-
-
-
Method Detail
-
empty
public static OptionalInt empty()
Returns an emptyOptionalIntinstance. No value is present for thisOptionalInt.- API Note:
- Though it may be tempting to do so, avoid testing if an object is empty
by comparing with
==against instances returned byOptionalInt.empty(). There is no guarantee that it is a singleton. Instead, useisPresent(). - Returns:
- an empty
OptionalInt
-
of
public static OptionalInt of(int value)
Returns anOptionalIntdescribing the given value.- Parameters:
value- the value to describe- Returns:
- an
OptionalIntwith the value present
-
getAsInt
public int getAsInt()
If a value is present, returns the value, otherwise throwsNoSuchElementException.- 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, returnstrue, otherwisefalse.- Returns:
trueif a value is present, otherwisefalse
-
isEmpty
public boolean isEmpty()
If a value is not present, returnstrue, otherwisefalse.- Returns:
trueif a value is not present, otherwisefalse- 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 isnull
-
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 presentemptyAction- 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 IntStream stream()
If a value is present, returns a sequentialIntStreamcontaining only that value, otherwise returns an emptyIntStream.- API Note:
- This method can be used to transform a
Streamof optional integers to anIntStreamof 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 returnsother.- 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 isnull
-
orElseThrow
public int orElseThrow()
If a value is present, returns the value, otherwise throwsNoSuchElementException.- 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 presentNullPointerException- if no value is present and the exception supplying function isnullX extends Throwable
-
equals
public boolean equals(Object obj)
Indicates whether some other object is "equal to" thisOptionalInt. The other object is considered equal if:- it is also an
OptionalIntand; - both instances have no value present or;
- the present values are "equal to" each other via
==.
- Overrides:
equalsin classObject- Parameters:
obj- an object to be tested for equality- Returns:
trueif the other object is "equal to" this object otherwisefalse- See Also:
Object.hashCode(),HashMap
- it is also an
-
hashCode
public int hashCode()
Returns the hash code of the value, if present, otherwise0(zero) if no value is present.- Overrides:
hashCodein classObject- Returns:
- hash code value of the present value or
0if no value is present - See Also:
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
toString
public String toString()
Returns a non-empty string representation of thisOptionalIntsuitable for debugging. The exact presentation format is unspecified and may vary between implementations and versions.
-
-