Класс 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, подходящее для отладки. |
Подробное описание методов
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 - См. также:
hashCode
public int hashCode()
0 (ноль), если значение отсутствует.- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение кода хэша текущего значения или
0если значение отсутствует - См. также:
toString
public String toString()
OptionalDouble, подходящее для отладки. Точный формат представления не указан и может различаться между реализациями и версиями.- Переопределяет:
-
toStringв классеObject - Требования к реализации:
- Если значение присутствует, результат должен включать его строковое представление в результат. Пустые и присутствующие
OptionalDoubleдолжны быть однозначно различимы. - Возвращает:
- строковое представление этого экземпляра
© 1993, 2021, 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/17/docs/api/java.base/java/util/OptionalDouble.html