- 所有已实现的接口:
Serializable
所有 TemporalField 实例都具有有效的值范围。例如,ISO 日期从 1 到 28 到 31 之间的某处。此类捕获该有效范围。
了解此类的局限性很重要。仅提供最小值和最大值。外部范围内可能存在无效值。例如,一个奇怪的字段可能具有有效值 1、2、4、6、7,因此范围为“1 - 7”,尽管值 3 和 5 无效。
此类的实例不绑定到特定字段。
- 实现要求:
- 这个类是不可变的和线程安全的。
- 自从:
- 1.8
- 参见:
-
方法总结
修饰符和类型方法描述intcheckValidIntValue(long value, TemporalField field) 检查指定的值是否有效并适合int。longcheckValidValue(long value, TemporalField field) 检查指定的值是否有效。boolean检查此范围是否等于另一个范围。long获取该字段可以采用的最大可能最小值。long获取字段可以取的最大值。long获取字段可以采用的最小值。long获取字段可以采用的最小可能最大值。inthashCode()此范围的哈希码。booleanisFixed()值域是否固定且完全已知。boolean检查范围内的所有值是否都在int中。booleanisValidIntValue(long value) 检查该值是否在有效范围内,以及该范围内的所有值是否都在int中。booleanisValidValue(long value) 检查值是否在有效范围内。static ValueRangeof(long min, long max) 获得一个固定的取值范围。static ValueRangeof(long min, long maxSmallest, long maxLargest) 获取可变取值范围。static ValueRangeof(long minSmallest, long minLargest, long maxSmallest, long maxLargest) 获得完全可变的值范围。toString()将此范围输出为String。
-
方法详情
-
of
获得一个固定的取值范围。该工厂获得一个范围,其中最小值和最大值是固定的。例如,ISO 月份总是从 1 到 12。
- 参数:
min- 最小值max- 最大值- 返回:
- 最小值、最大值的 ValueRange,不为空
- 抛出:
IllegalArgumentException- 如果最小值大于最大值
-
of
获取可变取值范围。该工厂获得一个范围,其中最小值是固定的,最大值可能会变化。例如,ISO 日期始终从 1 开始,但在 28 到 31 之间结束。
- 参数:
min- 最小值maxSmallest- 最小的最大值maxLargest- 最大的最大值- 返回:
- 最小值、最小最大值、最大最大值的 ValueRange,不为空
- 抛出:
IllegalArgumentException- 如果最小值大于最小最大值,或者最小最大值大于最大最大值
-
of
获得完全可变的值范围。该工厂获得一个范围,其中最小值和最大值都可能不同。
- 参数:
minSmallest- 最小的最小值minLargest- 最大最小值maxSmallest- 最小的最大值maxLargest- 最大的最大值- 返回:
- 最小最小值、最大最小值、最小最大值、最大最大值的 ValueRange,不为空
- 抛出:
IllegalArgumentException- 如果最小的最小值大于最小的最大值,或者最小的最大值大于最大的最大值,或者最大的最小值大于最大的最大值,或者最小的最小值大于最大的最小值
-
isFixed
public boolean isFixed()值域是否固定且完全已知。例如,ISO day-of-month 从 1 到 28 到 31 之间。由于最大值存在不确定性,因此范围不固定。但是,对于一月份,范围始终为 1 到 31,因此它是固定的。
- 返回:
- 如果值集是固定的,则为真
-
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中。这将检查所有有效值是否在
int的范围内。例如,ISO 月份的值从 1 到 12,适合
int。相比之下,ISO nano-of-day 从 1 到 86,400,000,000,000 不适合int。此实现使用
getMinimum()和getMaximum()。- 返回:
-
如果有效值始终适合
int,则为真
-
isValidValue
public boolean isValidValue(long value) 检查值是否在有效范围内。这将检查该值是否在存储的值范围内。
- 参数:
value- 要检查的值- 返回:
- 如果值有效则为真
-
isValidIntValue
public boolean isValidIntValue(long value) 检查该值是否在有效范围内,以及该范围内的所有值是否都在int中。此方法结合了
isIntValue()和isValidValue(long)。- 参数:
value- 要检查的值- 返回:
-
如果该值有效且适合
int,则为真
-
checkValidValue
检查指定的值是否有效。这将验证该值是否在有效值范围内。该字段仅用于改进错误消息。
- 参数:
value- 要检查的值field- 正在检查的字段,可能为空- 返回:
- 传入的值
- 参见:
-
checkValidIntValue
检查指定的值是否有效并适合int。这验证该值在值的有效范围内,并且所有有效值都在
int的范围内。该字段仅用于改进错误消息。- 参数:
value- 要检查的值field- 正在检查的字段,可能为空- 返回:
- 传入的值
- 参见:
-
equals
检查此范围是否等于另一个范围。比较基于四个值,最小值、最大最小值、最小最大值和最大值。只比较
ValueRange类型的对象,其他类型返回 false。 -
hashCode
public int hashCode()此范围的哈希码。 -
toString
将此范围输出为String。格式将为“{min}/{largestMin} - {smallestMax}/{max}”,其中 largestMin 或 smallestMax 部分可以省略,如果它们与最小值或最大值相同,连同相关的斜线。
-