Класс OptionalLong
public final class OptionalLong extends Object
long. Если значение присутствует, isPresent() возвращает true. Если значение отсутствует, объект считается пустым, а isPresent() возвращает false. Предоставляются дополнительные методы, зависящие от наличия или отсутствия содержащегося значения, например orElse() (возвращает значение по умолчанию, если значение отсутствует) и ifPresent() (выполняет действие, если значение присутствует).
Это класс, основанный на значениях; программистам следует считать взаимозаменяемыми экземпляры, которые равны, и не использовать экземпляры для синхронизации, иначе может возникнуть непредсказуемое поведение. Например, в будущем выпуске синхронизация может завершиться неудачей.
- Примечание к API:
-
OptionalLongв первую очередь предназначен для использования в качестве типа возвращаемого значения метода, когда необходимо явно представить «отсутствие результата». Переменная типаOptionalLongникогда не должна сама иметь значениеnull; она всегда должна указывать на экземплярOptionalLong. - С момента:
- 1.8
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static OptionalLong |
empty() |
Возвращает пустой экземпляр OptionalLong. |
boolean |
equals |
Показывает, является ли другой объект «равным» этому OptionalLong. |
long |
getAsLong() |
Если значение присутствует, возвращает его, иначе выбрасывает NoSuchElementException. |
int |
hashCode() |
Возвращает хеш-код значения, если оно присутствует, иначе 0 (ноль), если значение отсутствует. |
void |
ifPresent |
Если значение присутствует, выполняет переданное действие с этим значением, иначе ничего не делает. |
void |
ifPresentOrElse |
Если значение присутствует, выполняет переданное действие с этим значением, иначе выполняет переданное действие для пустого значения. |
boolean |
isEmpty() |
Если значение отсутствует, возвращает true, иначе false. |
boolean |
isPresent() |
Если значение присутствует, возвращает true, иначе false. |
static OptionalLong |
of |
Возвращает OptionalLong, описывающий указанное значение. |
long |
orElse |
Если значение присутствует, возвращает его, иначе возвращает other. |
long |
orElseGet |
Если значение присутствует, возвращает его, иначе возвращает результат, полученный от предоставляющей функции. |
long |
orElseThrow() |
Если значение присутствует, возвращает его, иначе выбрасывает NoSuchElementException. |
<X extends Throwable> |
orElseThrow |
Если значение присутствует, возвращает его, иначе выбрасывает исключение, созданное функцией, предоставляющей исключение. |
LongStream |
stream() |
Если значение присутствует, возвращает последовательный LongStream, содержащий только это значение, иначе возвращает пустой LongStream. |
String |
toString() |
Возвращает непустое строковое представление этого OptionalLong, подходящее для отладки. |
Методы, объявленные в классе 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() |
Заставляет текущий поток ждать, пока он не будет разбужен, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ждать, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не истечет заданное время. |
final void |
wait |
Заставляет текущий поток ждать, пока он не будет разбужен, обычно посредством уведомления или прерывания, либо пока не истечет заданное время. |
Подробное описание методов
empty
public static OptionalLong empty()
OptionalLong. Для этого OptionalLong значение отсутствует.- Примечание к API:
- Как бы ни было заманчиво, не следует проверять, пуст ли объект, сравнивая его с
==или!=с экземплярами, возвращаемымиOptionalLong.empty(). Нет гарантии, что это одиночный экземпляр. Вместо этого используйтеisEmpty()илиisPresent(). - Возвращает:
- пустой
OptionalLong.
of
public static OptionalLong of(long value)
OptionalLong, описывающий указанное значение.- Параметры:
-
value— значение, которое требуется описать - Возвращает:
OptionalLong, содержащее значение
getAsLong
public long getAsLong()
NoSuchElementException.- Примечание к API:
- Предпочтительной альтернативой этому методу является
orElseThrow(). - Возвращает:
- значение, описываемое этим
OptionalLong - Выбрасывает:
-
NoSuchElementException— если значение отсутствует
isPresent
public boolean isPresent()
true, иначе false.- Возвращает:
-
true, если значение присутствует, иначеfalse
isEmpty
public boolean isEmpty()
true, иначе false.- Возвращает:
-
true, если значение отсутствует, иначеfalse - С момента:
- 11
ifPresent
public void ifPresent(LongConsumer action)
- Параметры:
-
action— действие, которое следует выполнить, если значение присутствует - Выбрасывает:
-
NullPointerException— если значение присутствует и переданное действие равноnull
ifPresentOrElse
public void ifPresentOrElse(LongConsumer action, Runnable emptyAction)
- Параметры:
-
action— действие, которое следует выполнить, если значение присутствует -
emptyAction— действие для пустого значения, которое следует выполнить, если значение отсутствует - Выбрасывает:
-
NullPointerException— если значение присутствует и переданное действие равноnullлибо значение отсутствует и переданное действие для пустого значения равноnull. - С момента:
- 9
stream
public LongStream stream()
LongStream, содержащий только это значение, иначе возвращает пустой LongStream.- Примечание к API:
- Этот метод можно использовать для преобразования
Streamнеобязательных значений типа long вLongStreamприсутствующих значений типа long:Stream<OptionalLong> os = .. LongStream s = os.flatMapToLong(OptionalLong::stream) - Возвращает:
- необязательное значение в виде
LongStream - С момента:
- 9
orElse
public long orElse(long other)
other.- Параметры:
-
other— значение, которое будет возвращено, если значение отсутствует - Возвращает:
- значение, если оно присутствует, иначе
other
orElseGet
public long orElseGet(LongSupplier supplier)
- Параметры:
-
supplier— функция, предоставляющая значение для возврата - Возвращает:
- значение, если оно присутствует, иначе результат, полученный от предоставляющей функции
- Выбрасывает:
-
NullPointerException— если значение отсутствует и предоставляющая функция равнаnull
orElseThrow
public long orElseThrow()
NoSuchElementException.- Возвращает:
- значение, описываемое этим
OptionalLong - Выбрасывает:
-
NoSuchElementException— если значение отсутствует - С момента:
- 10
orElseThrow
public <X extends Throwable> long orElseThrow(Supplier<? extends X> exceptionSupplier) throws X
- Примечание к API:
- В качестве функции-поставщика можно использовать ссылку на метод конструктора исключения без аргументов. Например,
IllegalStateException::new - Параметры типа:
X— тип выбрасываемого исключения- Параметры:
-
exceptionSupplier— функция, предоставляющая исключение для выбрасывания - Возвращает:
- значение, если оно присутствует
- Выбрасывает:
-
X— если значение отсутствует -
NullPointerException— если значение отсутствует и функция, предоставляющая исключение, равнаnull
equals
public boolean equals(Object obj)
OptionalLong. Другой объект считается равным, если: - он также является
OptionalLong; - оба экземпляра не содержат значения; или
- присутствующие значения «равны» друг другу согласно
==.
hashCode
toString
public String toString()
OptionalLong, подходящее для отладки. Точный формат представления не определен и может различаться в разных реализациях и версиях.
© 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.