Spec-Zone.ru › OpenJDK 24

Интерфейс TemporalQuery<R>

Параметры типа:
R - тип, возвращаемый запросом
Функциональный интерфейс:
Это функциональный интерфейс и поэтому может использоваться в качестве целевого значения лямбда-выражения или ссылки на метод.
@FunctionalInterface public interface TemporalQuery<R>
Стратегия для запроса временного объекта.

Запросы — ключевой инструмент для извлечения информации из временных объектов. Они существуют для внешнего представления процесса запроса, позволяя применять различные подходы в соответствии со схемой проектирования стратегии. Примеры: запрос, проверяющий, является ли дата днем перед 29 февраля в високосном году, или вычисление количества дней до следующего дня рождения.

Интерфейс TemporalField предоставляет другой механизм для запроса временных объектов. Этот интерфейс ограничен возвращением long. В отличие от этого, запросы могут возвращать любой тип.

Существует два эквивалентных способа использования TemporalQuery. Первый — вызвать метод напрямую в этом интерфейсе. Второй — использовать TemporalAccessor.query(TemporalQuery):

   // these two lines are equivalent, but the second approach is recommended
   temporal = thisQuery.queryFrom(temporal);
   temporal = temporal.query(thisQuery);
 
Рекомендуется использовать второй подход, query(TemporalQuery), так как он намного понятнее в коде.

Наиболее распространёнными реализациями являются ссылки на методы, такие как LocalDate::from и ZoneId::from. Дополнительные распространённые запросы предоставляются в качестве статических методов в TemporalQueries.

Требования к реализации:
Этот интерфейс не накладывает ограничений на изменчивость реализаций, однако неизменность настоятельно рекомендуется.
С:
1.8

Краткое описание методов

Модификатор и тип Метод Описание
R queryFrom(TemporalAccessor temporal)
Запрашивает указанный временной объект.

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

queryFrom

R queryFrom(TemporalAccessor temporal)
Запрашивает указанный временной объект.

Этот запрос направлен на указанный временной объект, чтобы вернуть объект с использованием логики, заключённой в реализующем классе. Примеры: запрос, проверяющий, является ли дата днем перед 29 февраля в високосном году, или вычисление количества дней до следующего дня рождения.

Существует два эквивалентных способа использования этого метода. Первый — вызвать этот метод напрямую. Второй — использовать TemporalAccessor.query(TemporalQuery):

   // these two lines are equivalent, but the second approach is recommended
   temporal = thisQuery.queryFrom(temporal);
   temporal = temporal.query(thisQuery);
 
Рекомендуется использовать второй подход, query(TemporalQuery), так как он намного понятнее в коде.
Требования к реализации:
Реализация должна принять входной объект и запросить его. Реализация определяет логику запроса и отвечает за документирование этой логики. Она может использовать любой метод TemporalAccessor для определения результата. Входной объект не должен изменяться.

Входной временной объект может находиться в календарной системе, отличной от ISO. Реализации могут выбрать документирование совместимости с другими календарными системами или отклонить объекты временных объектов, отличных от ISO, с помощью querying the chronology.

Этот метод может быть вызван из нескольких потоков параллельно. Он должен быть потокобезопасным при вызове.

Параметры:
temporal - запрашиваемый временной объект, не null
Возвращает:
запрошенное значение, может вернуть null, чтобы указать на то, что не найдено
Бросает:
DateTimeException - если запрос выполнить невозможно
ArithmeticException - если происходит переполнение числового типа

© 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/time/temporal/TemporalQuery.html

Spec-Zone.ru

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