TemporalAdjuster — temporal 객체 조정 전략 인터페이스
TemporalAdjuster — temporal 객체 조정 전략 인터페이스
temporal 객체를 조정하기 위한 전략(strategy)을 나타내는 함수형 인터페이스예요.
본문
시그니처
@FunctionalInterface
public interface TemporalAdjuster
알려진 하위 인터페이스: ChronoLocalDate, ChronoLocalDateTime<D>, Era.
설명
조정기(adjuster)는 temporal 객체를 수정하는 핵심 도구예요. 전략 디자인 패턴에 따라 서로 다른 접근 방식을 허용하면서 조정 과정을 외부화하기 위해 존재해요. 예를 들어 주말을 피해 날짜를 설정하는 조정기나, 날짜를 월의 마지막 날로 설정하는 조정기가 있을 수 있어요.
TemporalAdjuster를 사용하는 두 가지 동등한 방법이 있어요. 첫 번째는 이 인터페이스의 메서드를 직접 호출하는 것이고, 두 번째는 Temporal.with(TemporalAdjuster)를 사용하는 것이에요:
// 두 줄은 동등하지만 두 번째 접근이 권장돼요
temporal = thisAdjuster.adjustInto(temporal);
temporal = temporal.with(thisAdjuster);
with(TemporalAdjuster) 방식이 코드에서 훨씬 읽기 명확하므로 권장돼요.
TemporalAdjusters 클래스에는 정적 메서드로 사용 가능한 표준 조정기 집합이 들어 있어요. 여기에는 다음이 포함돼요:
- 월의 첫 번째 또는 마지막 날 찾기
- 다음 달의 첫 번째 날 찾기
- 연도의 첫 번째 또는 마지막 날 찾기
- 다음 연도의 첫 번째 날 찾기
- 월 내의 요일 찾기 (예: "6월의 첫 번째 수요일")
- 다음 또는 이전 요일 찾기 (예: "다음 목요일")
주요 메서드
adjustInto(Temporal temporal)— 지정한 temporal 객체를 조정해요.