Класс OptionalInt

public final class OptionalInt
extends Object

Объект-контейнер, который может или не может содержать значение int. Если значение присутствует, isPresent() возвращает true. Если значение отсутствует, объект считается пустым и isPresent() возвращает false.

Предоставляются дополнительные методы, которые зависят от наличия или отсутствия содержащегося значения, такие как orElse() (возвращает значение по умолчанию, если значение отсутствует) и ifPresent() (выполняет действие, если значение присутствует).

Это класс базируемый на значении; использование операций, чувствительных к идентификатору (включая равенство ссылок (==), хэш-код идентичности или синхронизацию) на экземплярах OptionalInt может привести к непредсказуемым результатам и следует избегать.

Примечание API:
OptionalInt предназначен в первую очередь для использования в качестве типа возвращаемого значения метода, где явно требуется представление «отсутствия результата». Переменная, тип которой OptionalInt, никогда не должна быть null; она всегда должна указывать на экземпляр OptionalInt.
С:
1.8

Методы

Модификатор и тип Метод Описание
static OptionalInt empty()

Возвращает пустой экземпляр OptionalInt.

boolean equals​(Object obj)

Указывает, является ли другой объект «равным» этому OptionalInt.

int getAsInt()

Если значение присутствует, возвращает значение, в противном случае выбрасывает NoSuchElementException.

int hashCode()

Возвращает хэш-код значения, если оно присутствует, в противном случае 0 (ноль), если значение отсутствует.

void ifPresent​(IntConsumer action)

Если значение присутствует, выполняет заданное действие со значением, в противном случае ничего не делает.

void ifPresentOrElse​(IntConsumer action, Runnable emptyAction)

Если значение присутствует, выполняет заданное действие со значением, в противном случае выполняет заданное действие по отсутствию значения.

boolean isEmpty()

Если значение отсутствует, возвращает true, в противном случае false.

boolean isPresent()

Если значение присутствует, возвращает true, в противном случае false.

static OptionalInt of​(int value)

Возвращает OptionalInt, описывающий заданное значение.

int orElse​(int other)

Если значение присутствует, возвращает значение, в противном случае возвращает other.

int orElseGet​(IntSupplier supplier)

Если значение присутствует, возвращает значение, в противном случае возвращает результат, полученный от предоставленной функции.

int orElseThrow()

Если значение присутствует, возвращает значение, в противном случае выбрасывает NoSuchElementException.

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

Если значение присутствует, возвращает значение, в противном случае выбрасывает исключение, сгенерированное функцией, предоставляющей исключение.

IntStream stream()

Если значение присутствует, возвращает последовательный IntStream, содержащий только это значение, в противном случае возвращает пустой IntStream.

String toString()

Возвращает строковое представление этого OptionalInt, подходящее для отладки.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Методы

empty

public static OptionalInt empty()

Возвращает пустой OptionalInt экземпляр. Значение для этого OptionalInt отсутствует.

Примечание API:
Хотя может быть соблазнительно сделать это, избегайте проверки, пуст ли объект, сравнивая его с == с экземплярами, возвращаемыми OptionalInt.empty(). Нет гарантии, что это синглтон. Вместо этого используйте 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 extends Throwable

Если значение присутствует, возвращает значение, в противном случае бросает исключение, сгенерированное функцией-поставщиком исключений.

Примечание API:
В качестве поставщика можно использовать ссылку на метод конструктора исключения с пустым списком аргументов. Например, IllegalStateException::new
Параметры типа:
X - Тип исключения, которое будет брошено
Параметры:
exceptionSupplier - функция-поставщик, которая генерирует исключение, которое будет брошено
Возвращает:
значение, если присутствует
Бросает:
X - если значение отсутствует
NullPointerException - если значение отсутствует и функция-поставщик исключений null
X extends Throwable

equals

public boolean equals(Object obj)

Указывает, является ли другой объект "равным" этому OptionalInt. Другой объект считается равным, если:

  • он также является OptionalInt;
  • оба экземпляра не имеют значения или;
  • присутствующие значения "равны" друг другу с помощью ==.

Переопределяет:
equals в классе Object
Параметры:
obj - объект, подлежащий проверке на равенство
Возвращает:
true если другой объект "равен" этому объекту, в противном случае false
См. также:
Object.hashCode(), HashMap

hashCode

public int hashCode()

Возвращает хэш-код значения, если оно присутствует, в противном случае 0 (ноль), если значение отсутствует.

Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода присутствующего значения или 0 если значение отсутствует
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

toString

public String toString()

Возвращает непустое строковое представление этого OptionalInt, подходящее для отладки. Точный формат представления не определен и может отличаться в разных реализациях и версиях.

Переопределяет:
toString в классе Object
Требования к реализации:
Если значение присутствует, результат должен включать его строковое представление в результат. Пустые и присутствующие OptionalInt должны быть однозначно различимы.
Возвращает:
строковое представление этого экземпляра

© 1993, 2020, 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/11/docs/api/java.base/java/util/OptionalInt.html

Spec-Zone .ru
спецификации, руководства, описания, API