Интерфейс 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

Методы

Модификатор и типМетодОписание
RqueryFrom​(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, 2020, 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/11/docs/api/java.base/java/time/temporal/TemporalQuery.html

Spec-Zone .ru
спецификации, руководства, описания, API