Класс OptionalDouble

public final class OptionalDouble
extends Object

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

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

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

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

Методы

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

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

boolean equals​(Object obj)

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

double getAsDouble()

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

int hashCode()

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

void ifPresent​(DoubleConsumer action)

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

void ifPresentOrElse​(DoubleConsumer action, Runnable emptyAction)

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

boolean isEmpty()

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

boolean isPresent()

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

static OptionalDouble of​(double value)

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

double orElse​(double other)

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

double orElseGet​(DoubleSupplier supplier)

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

double orElseThrow()

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

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

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

DoubleStream stream()

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

String toString()

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

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

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

Методы

empty

public static OptionalDouble empty()

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

Примечание API:
Хотя это может показаться заманчивым, избегайте проверки, является ли объект пустым, сравнивая его с == с экземплярами, возвращаемыми OptionalDouble.empty(). Нет гарантии, что это одиночный экземпляр. Вместо этого используйте isPresent().
Возвращает:
пустой OptionalDouble.

of

public static OptionalDouble of(double value)

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

Параметры:
value - значение для описания
Возвращает:
OptionalDouble с присутствующим значением

getAsDouble

public double getAsDouble()

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

Примечание API:
Предпочтительной альтернативой этому методу является orElseThrow().
Возвращает:
значение, описанное этим OptionalDouble
Выбрасывает:
NoSuchElementException - если значение отсутствует

isPresent

public boolean isPresent()

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

Возвращает:
true если значение присутствует, иначе false

isEmpty

public boolean isEmpty()

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

Возвращает:
true если значение отсутствует, иначе false
С момента:
11

ifPresent

public void ifPresent(DoubleConsumer action)

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

Параметры:
action - действие, которое должно быть выполнено, если значение присутствует
Выбрасывает:
NullPointerException - если значение присутствует и заданное действие null

ifPresentOrElse

public void ifPresentOrElse(DoubleConsumer action,
                            Runnable emptyAction)

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

Параметры:
action - действие, которое должно быть выполнено, если значение присутствует
emptyAction - действие, которое должно быть выполнено, если значение отсутствует
Выбрасывает:
NullPointerException - если значение присутствует и заданное действие null, или значение отсутствует и заданное действие для пустого случая null.
С момента:
9

stream

public DoubleStream stream()

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

Примечание API:
Этот метод может быть использован для преобразования Stream опциональных double-значений в DoubleStream присутствующих double-значений:
Stream<OptionalDouble> os = ..
     DoubleStream s = os.flatMapToDouble(OptionalDouble::stream)
Возвращает:
опциональное значение как DoubleStream
С момента:
9

orElse

public double orElse(double other)

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

Параметры:
other - значение, которое должно быть возвращено, если значение отсутствует
Возвращает:
значение, если присутствует, иначе other

orElseGet

public double orElseGet(DoubleSupplier supplier)

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

Параметры:
supplier - функция-поставщик, которая производит значение для возврата
Возвращает:
значение, если присутствует, иначе результат, полученный от функции-поставщика
Выбрасывает:
NullPointerException - если значение отсутствует и функция-поставщик null

orElseThrow

public double orElseThrow()

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

Возвращает:
значение, описанное этим OptionalDouble
Выбрасывает:
NoSuchElementException - если значение отсутствует
С момента:
10

orElseThrow

public <X extends Throwable> double 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)

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

  • он также является OptionalDouble и;
  • оба экземпляра не содержат значения или;
  • присутствующие значения "равны" друг другу через Double.compare() == 0.

Переопределяет:
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()

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

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

© 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/OptionalDouble.html

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