public final class OptionalInt extends Object
int
value. If a
value is present, isPresent()
returns true
and
getAsInt()
returns the value.
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).
This is a value-based
class; use of identity-sensitive operations (including reference equality
(==
), identity hash code, or synchronization) on instances of
OptionalInt
may have unpredictable results and should be avoided.
Modifier and Type | Method and Description |
---|---|
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 |
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> |
orElseThrow(Supplier<? extends X> exceptionSupplier)
If a value is present, returns the value, otherwise throws an exception
produced by the exception supplying function.
|
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. |
public static OptionalInt empty()
OptionalInt
instance. No value is present for
this OptionalInt
.==
against instances returned by
OptionalInt.empty()
. There is no guarantee that it is a singleton.
Instead, use isPresent()
.OptionalInt
public static OptionalInt of(int value)
OptionalInt
describing the given value.value
- the value to describeOptionalInt
with the value presentpublic int getAsInt()
NoSuchElementException
.OptionalInt
NoSuchElementException
- if no value is presentisPresent()
public boolean isPresent()
true
, otherwise false
.true
if a value is present, otherwise false
public void ifPresent(IntConsumer action)
action
- the action to be performed, if a value is presentNullPointerException
- if value is present and the given action is
null
public void ifPresentOrElse(IntConsumer action, Runnable emptyAction)
action
- the action to be performed, if a value is presentemptyAction
- the empty-based action to be performed, if no value is
presentNullPointerException
- if a value is present and the given action
is null
, or no value is present and the given empty-based
action is null
.public IntStream stream()
IntStream
containing
only that value, otherwise returns an empty IntStream
.Stream
of optional
integers to an IntStream
of present integers:
Stream<OptionalInt> os = ..
IntStream s = os.flatMapToInt(OptionalInt::stream)
IntStream
public int orElse(int other)
other
.other
- the value to be returned, if no value is presentother
public int orElseGet(IntSupplier supplier)
supplier
- the supplying function that produces a value to be returnedNullPointerException
- if no value is present and the supplying
function is null
public <X extends Throwable> int orElseThrow(Supplier<? extends X> exceptionSupplier) throws X extends Throwable
IllegalStateException::new
X
- Type of the exception to be thrownexceptionSupplier
- the supplying function that produces an
exception to be thrownX
- if no value is presentNullPointerException
- if no value is present and the exception
supplying function is null
X extends Throwable
public boolean equals(Object obj)
OptionalInt
. The other object is considered equal if:
OptionalInt
and;
==
.
equals
in class Object
obj
- an object to be tested for equalitytrue
if the other object is "equal to" this object
otherwise false
Object.hashCode()
,
HashMap
public int hashCode()
0
(zero) if no value is present.hashCode
in class Object
0
if no value is
presentObject.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public String toString()
OptionalInt
suitable for debugging. The exact presentation format is unspecified and
may vary between implementations and versions. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.
DRAFT 9-internal+0-2016-01-26-133437.ivan.openjdk9onspinwait