Класс OptionalInt
public final class OptionalInt extends Object
int. Если значение присутствует, isPresent() возвращает true. Если значение отсутствует, объект считается пустым, а isPresent() возвращает false. Предусмотрены дополнительные методы, поведение которых зависит от наличия или отсутствия содержащегося значения, например orElse() (возвращает значение по умолчанию, если значение отсутствует) и ifPresent() (выполняет действие, если значение присутствует).
Это класс-значение; программистам следует считать экземпляры, которые равны, взаимозаменяемыми и не использовать экземпляры для синхронизации, иначе может возникнуть непредсказуемое поведение. Например, в будущей версии синхронизация может не сработать.
- Примечание к API:
-
OptionalIntпредназначен в первую очередь для использования в качестве типа возвращаемого значения метода, когда необходимо явно представить «отсутствие результата». Переменная типаOptionalIntникогда не должна сама бытьnull; она всегда должна ссылаться на экземплярOptionalInt. - Начиная с версии:
- 1.8
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static OptionalInt |
empty() |
Возвращает пустой экземпляр OptionalInt. |
boolean |
equals |
Указывает, является ли другой объект «равным» этому OptionalInt. |
int |
getAsInt() |
Если значение присутствует, возвращает его, иначе выбрасывает NoSuchElementException. |
int |
hashCode() |
Возвращает хеш-код значения, если оно присутствует, иначе 0 (ноль), если значение отсутствует. |
void |
ifPresent |
Если значение присутствует, выполняет с ним указанное действие, иначе ничего не делает. |
void |
ifPresentOrElse |
Если значение присутствует, выполняет с ним указанное действие, иначе выполняет указанное действие для пустого значения. |
boolean |
isEmpty() |
Если значение отсутствует, возвращает true, иначе false. |
boolean |
isPresent() |
Если значение присутствует, возвращает true, иначе false. |
static OptionalInt |
of |
Возвращает OptionalInt, описывающий указанное значение. |
int |
orElse |
Если значение присутствует, возвращает его, иначе возвращает other. |
int |
orElseGet |
Если значение присутствует, возвращает его, иначе возвращает результат, полученный от функции-поставщика. |
int |
orElseThrow() |
Если значение присутствует, возвращает его, иначе выбрасывает NoSuchElementException. |
<X extends Throwable> |
orElseThrow |
Если значение присутствует, возвращает его, иначе выбрасывает исключение, созданное функцией-поставщиком исключения. |
IntStream |
stream() |
Если значение присутствует, возвращает последовательный IntStream, содержащий только это значение, иначе возвращает пустой IntStream. |
String |
toString() |
Возвращает непустое строковое представление этого OptionalInt, подходящее для отладки. |
Подробное описание методов
empty
public static OptionalInt empty()
OptionalInt. Для этого OptionalInt значение отсутствует.- Примечание к API:
- Как бы ни было заманчиво поступить иначе, не проверяйте, пуст ли объект, сравнивая его с
==или проверяя его на равенство с помощью!=для экземпляров, возвращённых методомOptionalInt.empty(). Нет гарантии, что это синглтон. Вместо этого используйтеisEmpty()илиisPresent(). - Возвращает:
- пустой
OptionalInt
of
public static OptionalInt of(int value)
OptionalInt, описывающий указанное значение.- Параметры:
-
value— значение для описания - Возвращает:
OptionalInt, содержащее значение
getAsInt
public int getAsInt()
NoSuchElementException.- Примечание к API:
- Предпочтительной альтернативой этому методу является
orElseThrow(). - Возвращает:
- значение, описанное этим
OptionalInt - Выбрасывает:
-
NoSuchElementException— если значение отсутствует
isPresent
public boolean isPresent()
true, иначе false.- Возвращает:
-
true, если значение присутствует, иначеfalse
isEmpty
public boolean isEmpty()
true, иначе false.- Возвращает:
-
true, если значение отсутствует, иначеfalse - Начиная с версии:
- 11
ifPresent
public void ifPresent(IntConsumer action)
- Параметры:
-
action— действие, которое нужно выполнить, если значение присутствует - Выбрасывает:
-
NullPointerException— если значение присутствует, а указанное действие равноnull
ifPresentOrElse
public void ifPresentOrElse(IntConsumer action, Runnable emptyAction)
- Параметры:
-
action— действие, которое нужно выполнить, если значение присутствует -
emptyAction— действие для пустого значения, которое нужно выполнить, если значение отсутствует - Выбрасывает:
-
NullPointerException— если значение присутствует, а указанное действие равноnull, либо если значение отсутствует, а указанное действие для пустого значения равноnull. - Начиная с версии:
- 9
stream
public IntStream stream()
IntStream, содержащий только это значение, иначе возвращает пустой IntStream.- Примечание к API:
- Этот метод можно использовать для преобразования
Streamнеобязательных целых чисел вIntStreamприсутствующих целых чисел:Stream<OptionalInt> os = .. IntStream s = os.flatMapToInt(OptionalInt::stream) - Возвращает:
- необязательное значение в виде
IntStream - Начиная с версии:
- 9
orElse
public int orElse(int other)
other.- Параметры:
-
other— значение, которое нужно вернуть, если значение отсутствует - Возвращает:
- значение, если оно присутствует, иначе
other
orElseGet
public int orElseGet(IntSupplier supplier)
- Параметры:
-
supplier— функция-поставщик, создающая возвращаемое значение - Возвращает:
- значение, если оно присутствует, иначе результат, полученный от функции-поставщика
- Выбрасывает:
-
NullPointerException— если значение отсутствует, а функция-поставщик равнаnull
orElseThrow
public int orElseThrow()
NoSuchElementException.- Возвращает:
- значение, описанное этим
OptionalInt - Выбрасывает:
-
NoSuchElementException— если значение отсутствует - Начиная с версии:
- 10
orElseThrow
public <X extends Throwable> int orElseThrow(Supplier<? extends X> exceptionSupplier) throws X
- Примечание к API:
- В качестве поставщика можно использовать ссылку на метод-конструктор исключения без аргументов. Например,
IllegalStateException::new - Параметры типа:
X— тип выбрасываемого исключения- Параметры:
-
exceptionSupplier— функция-поставщик, создающая исключение для выбрасывания - Возвращает:
- значение, если оно присутствует
- Выбрасывает:
-
X— если значение отсутствует -
NullPointerException— если значение отсутствует, а функция-поставщик исключения равнаnull
equals
public boolean equals(Object obj)
OptionalInt. Другой объект считается равным, если: - он также является
OptionalInt; и - оба экземпляра не содержат значения; или
- содержащиеся значения «равны» друг другу согласно
==.
hashCode
toString
public String toString()
OptionalInt, подходящее для отладки. Точный формат представления не определён и может различаться в разных реализациях и версиях.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/OptionalInt.html