- 所有已实现的接口:
-
Serializable
所有TemporalField实例都有有效值范围。例如,ISO日期的月份从1到28到31之间。该类捕获了有效范围。
重要的是要意识到这个类的限制。只提供了最小值和最大值。在外部范围内可能存在无效值。例如,一个奇怪的字段可能有值1、2、4、6、7,因此范围为'1 - 7',尽管值3和5是无效的。
此类的实例不与特定字段绑定。
- 实现要求:
- 此类是不可变的且线程安全的。
- 自从:
- 1.8
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionintcheckValidIntValue(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。
-
Method Details
-
of
获取固定值范围。此工厂获取最小值和最大值固定的范围。例如,ISO年份始终从1到12。
- 参数:
-
min- 最小值 -
max- 最大值 - 返回:
- min、max的ValueRange,不为null
- 抛出:
-
IllegalArgumentException- 如果最小值大于最大值
-
of
获取可变值范围。此工厂获取最小值固定且最大值可能变化的范围。例如,ISO日期的日始终从1开始,但结束在28到31之间。
- 参数:
-
min- 最小值 -
maxSmallest- 最小的最大值 -
maxLargest- 最大的最大值 - 返回:
- min、最小max、最大max的ValueRange,不为null
- 抛出:
-
IllegalArgumentException- 如果最小值大于最小最大值,或最小最大值大于最大最大值
-
of
获取完全可变值范围。此工厂获取最小值和最大值都可能变化的范围。
- 参数:
-
minSmallest- 最小的最小值 -
minLargest- 最大的最小值 -
maxSmallest- 最小的最大值 -
maxLargest- 最大的最大值 - 返回:
- 最小最小值、最大最小值、最小最大值、最大最大值的ValueRange,不为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。这将检查所有有效值是否在
int的范围内。例如,ISO年份的值从1到12,适合于
int。相比之下,ISO一天的纳秒从1到86,400,000,000,000,不适合于int。此实现使用
getMinimum()和getMaximum()。- 返回:
-
如果有效值始终适合于
int,则为true
-
isValidValue
public boolean isValidValue(long value) 检查值是否在有效范围内。这将检查值是否在存储的值范围内。
- 参数:
-
value- 要检查的值 - 返回:
- 如果值有效,则为true
-
isValidIntValue
public boolean isValidIntValue(long value) 检查值是否在有效范围内,并且范围内的所有值是否适合于int。此方法结合了
isIntValue()和isValidValue(long)。- 参数:
-
value- 要检查的值 - 返回:
-
如果值有效且适合于
int,则为true
-
checkValidValue
检查指定值是否有效。这将验证值是否在有效值范围内。该字段仅用于改进错误消息。
- 参数:
-
value- 要检查的值 -
field- 正在检查的字段,可能为null - 返回:
- 传入的值
- 参见:
-
checkValidIntValue
检查指定值是否有效并适合于int。这将验证值是否在有效值范围内,并且所有有效值是否在
int的范围内。该字段仅用于改进错误消息。- 参数:
-
value- 要检查的值 -
field- 正在检查的字段,可能为null - 返回:
- 传入的值
- 参见:
-
equals
检查此范围是否等于另一个范围。比较基于四个值,最小值、最大最小值、最小最大值和最大值。仅比较
ValueRange类型的对象,其他类型返回false。 -
hashCode
public int hashCode()此范围的哈希码。 -
toString
将此范围输出为String。格式将是'{min}/{largestMin} - {smallestMax}/{max}',如果largestMin或smallestMax部分与min或max相同,则可能省略,连同相关的斜杠。
-