Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface TemporalAccessor
Это - основной тип интерфейса для даты, время и объекты смещения. Это реализуется теми классами, которые могут предоставить информацию как поля или запросы.
Большинство даты и информации времени могут быть представлены как число. Они моделируются, используя TemporalField
с числом, сохраненным, используя a long
обработать большие значения. Год, месяц и день-месячного являются простыми примерами полей, но они также включают момент и смещения. См. ChronoField
для стандартного набора полей.
Две части информации о дате/времени не могут быть представлены числами, хронологией и часовым поясом. К ним можно получить доступ через запросы, используя статические методы, определенные на TemporalQuery
.
Подинтерфейс, Temporal
, расширяет это определение тому, который также поддерживает корректировку и манипулирование на более полных временных объектах.
Этот интерфейс является интерфейсом на уровне платформы, который не должен широко использоваться в коде программы. Вместо этого приложения должны создать и раздать экземпляры конкретных типов, такой как LocalDate
. Есть много причин этого, часть которого - то, что реализации этого интерфейса могут быть в календарных системах кроме ISO. См. ChronoLocalDate
для более полного обсуждения проблем.
Модификатор и Тип | Метод и Описание |
---|---|
default int |
get(TemporalField field)
Получает значение указанного поля как
int . |
long |
getLong(TemporalField field)
Получает значение указанного поля как a
long . |
boolean |
isSupported(TemporalField field)
Проверки, если указанное поле поддерживается.
|
default <R> R |
query(TemporalQuery<R> query)
Запросы это разовое датой.
|
default ValueRange |
range(TemporalField field)
Получает диапазон допустимых значений для указанного поля.
|
boolean isSupported(TemporalField field)
Это проверяет, может ли разовое датой быть запрошено для указанного поля. Если ложь, то вызов range
и get
методы выдадут исключение.
ChronoField
. Если поле поддерживается, то true возвращается, иначе ложь Если поле не является a ChronoField
, тогда результат этого метода получается, вызывая TemporalField.isSupportedBy(TemporalAccessor)
передача this
как параметр.
Реализации не должны изменить ни один этот объект.
field
- поле, чтобы проверить, обнулите, возвращает falsedefault ValueRange range(TemporalField field)
Все поля могут быть выражены как a long
целое число. Этот метод возвращает объект, который описывает допустимый диапазон для того значения. Значение этого временного объекта используется, чтобы улучшить точность возвращенного диапазона. Если разовое датой не может возвратить диапазон, потому что поле неподдерживается или по некоторой другой причине, исключение будет выдано.
Отметьте, что результат только описывает минимальные и максимальные допустимые значения, и важно не читать слишком много в них. Например, могли быть значения в пределах диапазона, которые недопустимы для поля.
ChronoField
. Если поле поддерживается, то диапазон поля должен быть возвращен. Если неподдерживающийся, то UnsupportedTemporalTypeException
должен быть брошен. Если поле не является a ChronoField
, тогда результат этого метода получается, вызывая TemporalField.rangeRefinedBy(TemporalAccessorl)
передача this
как параметр.
Реализации не должны изменить ни один этот объект.
Реализация по умолчанию должна вести себя эквивалентная этому коду:
if (field instanceof ChronoField) { if (isSupported(field)) { return field.range(); } throw new UnsupportedTemporalTypeException("Unsupported field: " + field.getName()); } return field.rangeRefinedBy(this);
field
- поле, чтобы запросить диапазон для, не нульDateTimeException
- если диапазон для поля не может быть полученUnsupportedTemporalTypeException
- если поле не поддерживаетсяdefault int get(TemporalField field)
int
. Это запрашивает разовое датой для значения для указанного поля. Возвращенное значение всегда будет в пределах допустимого диапазона значений для поля. Если разовое датой не может возвратить значение, потому что поле неподдерживается или по некоторой другой причине, исключение будет выдано.
ChronoField
. Если поле поддерживается и имеет int
диапазон, тогда значение поля должно быть возвращено. Если неподдерживающийся, то UnsupportedTemporalTypeException
должен быть брошен. Если поле не является a ChronoField
, тогда результат этого метода получается, вызывая TemporalField.getFrom(TemporalAccessor)
передача this
как параметр.
Реализации не должны изменить этот объект.
Реализация по умолчанию должна вести себя эквивалентная этому коду:
if (range(field).isIntValue()) { return range(field).checkValidIntValue(getLong(field), field); } throw new UnsupportedTemporalTypeException("Invalid field " + field + " + for get() method, use getLong() instead");
field
- поле, чтобы получить, не нульDateTimeException
- если значение для поля не может быть получено, или значение вне диапазона допустимых значений для поляUnsupportedTemporalTypeException
- если поле не поддерживается, или диапазон значений превышает int
ArithmeticException
- если числовое переполнение происходитlong getLong(TemporalField field)
long
. Это запрашивает разовое датой для значения для указанного поля. Возвращенное значение может быть вне допустимого диапазона значений для поля. Если разовое датой не может возвратить значение, потому что поле неподдерживается или по некоторой другой причине, исключение будет выдано.
ChronoField
. Если поле поддерживается, то значение поля должно быть возвращено. Если неподдерживающийся, то UnsupportedTemporalTypeException
должен быть брошен. Если поле не является a ChronoField
, тогда результат этого метода получается, вызывая TemporalField.getFrom(TemporalAccessor)
передача this
как параметр.
Реализации не должны изменить ни один этот объект.
field
- поле, чтобы получить, не нульDateTimeException
- если значение для поля не может быть полученоUnsupportedTemporalTypeException
- если поле не поддерживаетсяArithmeticException
- если числовое переполнение происходитdefault <R> R query(TemporalQuery<R> query)
Это запрашивает это разовое датой использование указанного объекта стратегии запроса.
Запросы являются ключевым инструментом для того, чтобы извлечь информацию со времен даты. Они существуют, чтобы воплотить процесс запросов, разрешая разные подходы, согласно шаблону разработки стратегии. Примерами мог бы быть запрос, который проверяет, является ли дата днем до 29-ого февраля в високосный год, или вычисляет число дней к Вашему следующему дню рождения.
Наиболее распространенные реализации запроса являются ссылками метода, такой как LocalDate::from
и ZoneId::from
. Дополнительные реализации обеспечиваются как статические методы на TemporalQuery
.
if (query == TemporalQuery.zoneId() || query == TemporalQuery.chronology() || query == TemporalQuery.precision()) { return null; } return query.queryFrom(this);Будущим версиям разрешают добавить дальнейшие запросы к если оператор.
Все классы, реализовывая этот интерфейс и переопределяя этот метод должны вызвать TemporalAccessor.super.query(query)
. Классы JDK могут избежать вызывать супер, если они обеспечивают поведение, эквивалентное поведению значения по умолчанию, однако классы не-JDK, возможно, не используют эту оптимизацию и должны вызвать super
.
Если реализация может предоставить значение для одного из запросов, перечисленных в, если оператор реализации по умолчанию, то это должно сделать так. Например, определенный с помощью приложения HourMin
class, хранящий час и минуту, должен переопределить этот метод следующим образом:
if (query == TemporalQuery.precision()) { return MINUTES; } return TemporalAccessor.super.query(query);
R
- тип результатаquery
- запрос, чтобы вызвать, не нульDateTimeException
- если неспособный запрашиватьArithmeticException
- если числовое переполнение происходит
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92