Spec-Zone.ru › OpenJDK 17

Интерфейс 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, 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/time/temporal/TemporalQuery.html

Spec-Zone.ru

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