TemporalQuery — temporal 객체 쿼리 전략 인터페이스

TemporalQuery — temporal 객체 쿼리 전략 인터페이스

temporal 객체를 쿼리하기 위한 전략(strategy)을 나타내는 함수형 인터페이스예요.

출처: Java API Reference

본문

시그니처

@FunctionalInterface
public interface TemporalQuery<R>

타입 매개변수: R — 쿼리에서 반환되는 타입.

설명

쿼리(query)는 temporal 객체에서 정보를 추출하는 핵심 도구예요. 전략 디자인 패턴에 따라 서로 다른 접근 방식을 허용하면서 쿼리 과정을 외부화하기 위해 존재해요. 예를 들어 날짜가 윤년의 2월 29일 전날인지 확인하는 쿼리나, 다음 생일까지의 일 수를 계산하는 쿼리가 있을 수 있어요.

TemporalField 인터페이스도 temporal 객체를 쿼리하는 또 다른 메커니즘을 제공하지만 그 인터페이스는 long 반환으로 제한돼요. 반면 쿼리는 어떤 타입이든 반환할 수 있어요.

TemporalQuery를 사용하는 두 가지 동등한 방법이 있어요. 첫 번째는 인터페이스의 메서드를 직접 호출하는 것이고, 두 번째는 TemporalAccessor.query(TemporalQuery)를 사용하는 것이에요:

// 두 줄은 동등하지만 두 번째 접근이 권장돼요
temporal = thisQuery.queryFrom(temporal);
temporal = temporal.query(thisQuery);

query(TemporalQuery) 방식이 코드에서 훨씬 읽기 명확하므로 권장돼요.

가장 흔한 구현은 LocalDate::fromZoneId::from 같은 메서드 참조예요. 추가 공통 쿼리는 TemporalQueries의 정적 메서드로 제공돼요.

주요 메서드

  • queryFrom(TemporalAccessor temporal) — 지정한 temporal 객체를 쿼리해요.

더 알아보기 (Learn more)