Spec-Zone.ru › OpenJDK 27

Класс OptionalDouble

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

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

Это класс на основе значений; программистам следует считать экземпляры, которые равны, взаимозаменяемыми и не использовать экземпляры для синхронизации, иначе возможно непредсказуемое поведение. Например, в одном из будущих выпусков синхронизация может завершиться с ошибкой.

Примечание к 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, подходящее для отладки.

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

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание методов

empty

public static OptionalDouble empty()
Возвращает пустой экземпляр OptionalDouble. Для этого OptionalDouble значение отсутствует.
Примечание к API:
Как бы ни было заманчиво проверять, является ли объект пустым, сравнивая его с == или != с экземплярами, возвращаемыми OptionalDouble.empty(), не делайте этого. Нет гарантии, что это единственный экземпляр. Вместо этого используйте isEmpty() или 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
Если значение присутствует, возвращает его, иначе выбрасывает исключение, созданное функцией, предоставляющей исключение.
Примечание к API:
В качестве предоставляющей функции можно использовать ссылку на метод конструктора исключения без аргументов. Например, IllegalStateException::new
Параметры типа:
X — тип исключения, которое будет выброшено
Параметры:
exceptionSupplier — предоставляющая функция, создающая исключение для выбрасывания
Возвращает:
значение, если оно присутствует
Выбрасывает:
X — если значение отсутствует
NullPointerException — если значение отсутствует, а функция, предоставляющая исключение, равна null

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(Object)

toString

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API