- 所有已实现的接口:
-
Serializable
所有TemporalField
实例都有有效值范围。例如,ISO日期的月份从1到28到31之间。该类捕获了有效范围。
重要的是要意识到这个类的限制。只提供了最小值和最大值。在外部范围内可能存在无效值。例如,一个奇怪的字段可能有值1、2、4、6、7,因此范围为'1 - 7',尽管值3和5是无效的。
此类的实例不与特定字段绑定。
- 实现要求:
- 此类是不可变的且线程安全的。
- 自从:
- 1.8
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionint
checkValidIntValue
(long value, TemporalField field) 检查指定值是否有效并适合于int
。long
checkValidValue
(long value, TemporalField field) 检查指定值是否有效。boolean
检查此范围是否等于另一个范围。long
获取字段可以取的最大可能最小值。long
获取字段可以取的最大值。long
获取字段可以取的最小值。long
获取字段可以取的最小可能最大值。int
hashCode()
此范围的哈希码。boolean
isFixed()
值范围是否固定且完全已知。boolean
检查范围内的所有值是否适合于int
。boolean
isValidIntValue
(long value) 检查值是否在有效范围内,并且范围内的所有值是否适合于int
。boolean
isValidValue
(long value) 检查值是否在有效范围内。static ValueRange
of
(long min, long max) 获取固定值范围。static ValueRange
of
(long min, long maxSmallest, long maxLargest) 获取可变值范围。static ValueRange
of
(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相同,则可能省略,连同相关的斜杠。
-