Класс OptionalDouble
public final class OptionalDouble extends Object
double. Если значение присутствует, метод isPresent() возвращает значение true. Если значение отсутствует, объект считается пустым и метод isPresent() возвращает false. Предоставляются дополнительные методы, зависящие от наличия или отсутствия содержащегося значения, такие как orElse() (возвращает значение по умолчанию, если значение отсутствует) и ifPresent() (выполняет действие, если значение присутствует).
Это класс базирующийся на значении; программисты должны рассматривать экземпляры, которые равны, как взаимозаменяемые и не должны использовать экземпляры для синхронизации, иначе может произойти непредсказуемое поведение. Например, в будущей версии синхронизация может не сработать.
- API Note:
-
OptionalDoubleпредназначен в первую очередь для использования в качестве типа возвращаемого значения метода, где явно требуется представить "отсутствие результата". Переменная, тип которой являетсяOptionalDouble, никогда не должна сама по себе бытьnull; она всегда должна указывать на экземплярOptionalDouble. - Since:
- 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, пригодное для отладки. |
Подробное описание методов
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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/OptionalDouble.html