* #### empty
public static [OptionalInt](../../java/util/OptionalInt.html "class in java.util") 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()](../../java/util/OptionalInt.html#isPresent--).
Returns:
an empty `OptionalInt`
* #### of
public static [OptionalInt](../../java/util/OptionalInt.html "class in java.util") 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 methods [orElse](../../java/util/OptionalInt.html#orElse-int-) and[orElseGet](../../java/util/OptionalInt.html#orElseGet-java.util.function.IntSupplier-) are generally preferable to this method, as they return a substitute value if the value is absent, instead of throwing an exception.
Returns:
the value described by this `OptionalInt`
Throws:
`[NoSuchElementException](../../java/util/NoSuchElementException.html "class in java.util")` \- if no value is present
See Also:
[isPresent()](../../java/util/OptionalInt.html#isPresent--)
* #### isPresent
public boolean isPresent()
If a value is present, returns `true`, otherwise `false`.
Returns:
`true` if a value is present, otherwise `false`
* #### ifPresent
public void ifPresent([IntConsumer](../../java/util/function/IntConsumer.html "interface in java.util.function") 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](../../java/lang/NullPointerException.html "class in java.lang")` \- if value is present and the given action is`null`
* #### ifPresentOrElse
public void ifPresentOrElse([IntConsumer](../../java/util/function/IntConsumer.html "interface in java.util.function") action,
[Runnable](../../java/lang/Runnable.html "interface in java.lang") 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](../../java/lang/NullPointerException.html "class in java.lang")` \- 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](../../java/util/stream/IntStream.html "interface in java.util.stream") stream()
If a value is present, returns a sequential [IntStream](../../java/util/stream/IntStream.html "interface in java.util.stream") 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](../../java/util/function/IntSupplier.html "interface in java.util.function") 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](../../java/lang/NullPointerException.html "class in java.lang")` \- if no value is present and the supplying function is `null`
* #### orElseThrow
public <X extends [Throwable](../../java/lang/Throwable.html "class in java.lang")> int orElseThrow([Supplier](../../java/util/function/Supplier.html "interface in java.util.function")<? extends X> exceptionSupplier)
throws X extends [Throwable](../../java/lang/Throwable.html "class in java.lang")
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](../../java/lang/NullPointerException.html "class in java.lang")` \- if no value is present and the exception supplying function is `null`
`X extends [Throwable](../../java/lang/Throwable.html "class in java.lang")`
* #### equals
public boolean equals([Object](../../java/lang/Object.html "class in java.lang") 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](../../java/lang/Object.html#equals-java.lang.Object-)` in class `[Object](../../java/lang/Object.html "class in java.lang")`
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()](../../java/lang/Object.html#hashCode--), [HashMap](../../java/util/HashMap.html "class in java.util")
* #### hashCode
public int hashCode()
Returns the hash code of the value, if present, otherwise `0` (zero) if no value is present.
Overrides:
`[hashCode](../../java/lang/Object.html#hashCode--)` in class `[Object](../../java/lang/Object.html "class in java.lang")`
Returns:
hash code value of the present value or `0` if no value is present
See Also:
[Object.equals(java.lang.Object)](../../java/lang/Object.html#equals-java.lang.Object-), [System.identityHashCode(java.lang.Object)](../../java/lang/System.html#identityHashCode-java.lang.Object-)
* #### toString
public [String](../../java/lang/String.html "class in java.lang") 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](../../java/lang/Object.html#toString--)` in class `[Object](../../java/lang/Object.html "class in java.lang")`
Implementation Requirements:
If a value is present the result must include its string representation in the result. Empty and present `OptionalInt`s must be unambiguously differentiable.
Returns:
the string representation of this instance