Класс 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 |
Указывает, является ли другой объект «равным» этому OptionalDouble. |
double |
getAsDouble() |
Если значение присутствует, возвращает его, иначе выбрасывает NoSuchElementException. |
int |
hashCode() |
Возвращает хеш-код значения, если оно присутствует, иначе 0 (ноль), если значение отсутствует. |
void |
ifPresent |
Если значение присутствует, выполняет заданное действие с этим значением, иначе ничего не делает. |
void |
ifPresentOrElse |
Если значение присутствует, выполняет заданное действие с этим значением, иначе выполняет заданное действие для пустого случая. |
boolean |
isEmpty() |
Если значение отсутствует, возвращает true, иначе false. |
boolean |
isPresent() |
Если значение присутствует, возвращает true, иначе false. |
static OptionalDouble |
of |
Возвращает OptionalDouble, описывающий заданное значение. |
double |
orElse |
Если значение присутствует, возвращает его, иначе возвращает other. |
double |
orElseGet |
Если значение присутствует, возвращает его, иначе возвращает результат, полученный от предоставляющей функции. |
double |
orElseThrow() |
Если значение присутствует, возвращает его, иначе выбрасывает NoSuchElementException. |
<X extends Throwable> |
orElseThrow |
Если значение присутствует, возвращает его, иначе выбрасывает исключение, созданное функцией, предоставляющей исключение. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова 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.
hashCode
toString
public String toString()
OptionalDouble, подходящее для отладки. Точный формат представления не специфицирован и может различаться в разных реализациях и версиях.
© 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.