Класс ValueRange
- Все реализованные интерфейсы:
Serializable
public final class ValueRange extends Object implements Serializable
Все TemporalField экземпляры имеют допустимый диапазон значений. Например, день месяца ISO варьируется от 1 до значения где-то между 28 и 31. Этот класс фиксирует этот допустимый диапазон.
Важно учитывать ограничения этого класса. Предоставляются только минимальное и максимальное значения. Возможно, что внутри внешнего диапазона будут недопустимые значения. Например, у странного поля могут быть допустимые значения 1, 2, 4, 6, 7, поэтому диапазон будет '1 - 7', несмотря на то, что значения 3 и 5 недопустимы.
Экземпляры этого класса не привязаны к конкретному полю.
- Требования к реализации:
- Этот класс неизменяемый и потокобезопасный.
- С:
- 1.8
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
checkValidIntValue |
Проверка, является ли указанное значение допустимым и подходит ли оно в int. |
long |
checkValidValue |
Проверка, является ли указанное значение допустимым. |
boolean |
equals |
Проверка, равен ли этот диапазон другому диапазону. |
long |
getLargestMinimum() |
Получение наибольшего возможного минимального значения, которое может принять поле. |
long |
getMaximum() |
Получение максимального значения, которое может принять поле. |
long |
getMinimum() |
Получение минимального значения, которое может принять поле. |
long |
getSmallestMaximum() |
Получение наименьшего возможного максимального значения, которое может принять поле. |
int |
hashCode() |
Хеш-код для этого диапазона. |
boolean |
isFixed() |
Является ли диапазон значений фиксированным и полностью известным. |
boolean |
isIntValue() |
Проверка, подходят ли все значения в диапазоне в int. |
boolean |
isValidIntValue |
Проверка, находится ли значение в допустимом диапазоне и подходят ли все значения в диапазоне в int. |
boolean |
isValidValue |
Проверка, находится ли значение в допустимом диапазоне. |
static ValueRange |
of |
Получение фиксированного диапазона значений. |
static ValueRange |
of |
Получение переменного диапазона значений. |
static ValueRange |
of |
Получение полностью переменного диапазона значений. |
String |
toString() |
Вывод этого диапазона как String. |
Подробное описание методов
of
public static ValueRange of(long min, long max)
Этот фабричный метод получает диапазон, где минимальное и максимальное значения фиксированы. Например, ISO месяц всегда изменяется от 1 до 12.
- Параметры:
-
min- минимальное значение -
max- максимальное значение - Возвращает:
- ValueRange для min, max, не null
- Исключения:
-
IllegalArgumentException- если минимальное значение больше максимального
of
public static ValueRange of(long min, long maxSmallest, long maxLargest)
Этот фабричный метод получает диапазон, где минимальное значение фиксировано, а максимальное значение может изменяться. Например, ISO день месяца всегда начинается с 1, но заканчивается между 28 и 31.
- Параметры:
-
min- минимальное значение -
maxSmallest- наименьшее максимальное значение -
maxLargest- наибольшее максимальное значение - Возвращает:
- ValueRange для min, наименьшего max, наибольшего max, не null
- Исключения:
-
IllegalArgumentException- если минимальное значение больше наименьшего максимального, или наименьшее максимальное значение больше наибольшего максимального
of
public static ValueRange of(long minSmallest, long minLargest, long maxSmallest, long maxLargest)
Этот фабричный метод получает диапазон, где как минимальное, так и максимальное значение могут изменяться.
- Параметры:
-
minSmallest- наименьшее минимальное значение -
minLargest- наибольшее минимальное значение -
maxSmallest- наименьшее максимальное значение -
maxLargest- наибольшее максимальное значение - Возвращает:
- ValueRange для наименьшего min, наибольшего min, наименьшего max, наибольшего max, не null
- Исключения:
-
IllegalArgumentException- если наименьшее минимальное значение больше наименьшего максимального, или наименьшее максимальное значение больше наибольшего максимального, или наибольшее минимальное значение больше наибольшего максимального, или наименьшее минимальное значение больше наибольшего минимального
isFixed
public boolean isFixed()
Например, ISO день месяца изменяется от 1 до между 28 и 31. Поскольку существует неопределенность относительно максимального значения, диапазон не фиксирован. Однако для месяца января диапазон всегда 1 до 31, поэтому он фиксирован.
- Возвращает:
- true, если множество значений фиксировано
getMinimum
public long getMinimum()
Например, ISO день месяца всегда начинается с 1. Поэтому минимальное значение равно 1.
- Возвращает:
- минимальное значение для этого поля
getLargestMinimum
public long getLargestMinimum()
Например, ISO день месяца всегда начинается с 1. Поэтому наибольшее минимальное значение равно 1.
- Возвращает:
- наибольшее возможное минимальное значение для этого поля
getSmallestMaximum
public long getSmallestMaximum()
Например, ISO день месяца изменяется до между 28 и 31 днями. Поэтому наименьшее максимальное значение равно 28.
- Возвращает:
- наименьшее возможное максимальное значение для этого поля
getMaximum
public long getMaximum()
Например, ISO день месяца изменяется до между 28 и 31 днями. Поэтому максимальное значение равно 31.
- Возвращает:
- максимальное значение для этого поля
isIntValue
public boolean isIntValue()
int. Это проверяет, что все допустимые значения находятся в пределах целочисленного типа.
Например, ISO месяц имеет значения от 1 до 12, что помещается в целочисленный тип. В сравнении, ISO наносекунда дня изменяется от 1 до 86 400 000 000 000, что не помещается в целочисленный тип.
Эта реализация использует getMinimum() и getMaximum().
- Возвращает:
- true, если допустимое значение всегда помещается в целочисленный тип
isValidValue
public boolean isValidValue(long value)
Это проверяет, что значение находится в хранящемся диапазоне значений.
- Параметры:
-
value- значение для проверки - Возвращает:
- true, если значение допустимо
isValidIntValue
public boolean isValidIntValue(long value)
Этот метод объединяет isIntValue() и isValidValue(long).
- Параметры:
-
value- значение для проверки - Возвращает:
- true, если значение допустимо и помещается в целочисленный тип
checkValidValue
public long checkValidValue(long value, TemporalField field)
Это проверяет, что значение находится в допустимом диапазоне значений. Поле используется только для улучшения сообщения об ошибке.
- Параметры:
-
value- значение для проверки -
field- проверяемое поле, может быть null - Возвращает:
- переданное значение
- См. также:
checkValidIntValue
public int checkValidIntValue(long value, TemporalField field)
Это проверяет, что значение находится в допустимом диапазоне значений и что все допустимые значения находятся в пределах целочисленного типа. Поле используется только для улучшения сообщения об ошибке.
- Параметры:
-
value- значение для проверки -
field- проверяемое поле, может быть null - Возвращает:
- переданное значение
- См. также:
equals
public boolean equals(Object obj)
Сравнение основано на четырех значениях: минимальном, наибольшем минимальном, наименьшем максимальном и максимальном. Сравниваются только объекты типа ValueRange, другие типы возвращают false.
- Overrides:
-
equalsв классеObject - Параметры:
-
obj- проверяемый объект, null возвращает false - Возвращает:
- true, если этот диапазон равен другому
- См. также:
hashCode
public int hashCode()
- Overrides:
-
hashCodeв классеObject - Возвращает:
- соответствующий хеш-код
- См. также:
toString
public String toString()
Формат будет '{min}/{largestMin} - {smallestMax}/{max}', где секции largestMin или smallestMax могут быть опушены, вместе со знаком слэша, если они равны min или max.
- Overrides:
-
toStringв классеObject - Возвращает:
- строковое представление этого диапазона, не null
© 1993, 2023, 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/21/docs/api/java.base/java/time/temporal/ValueRange.html