- java.lang.Object
-
- java.time.temporal.ValueRange
-
- All Implemented Interfaces:
-
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
- 另请参见:
- Serialized Form
-
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 int
checkValidIntValue(long value, TemporalField field)
检查指定的值是否有效并适合int
。long
checkValidValue(long value, TemporalField field)
检查指定的值是否有效。boolean
equals(Object obj)
检查此范围是否等于另一个范围。long
getLargestMinimum()
获取该字段可能采取的最大可能最小值。long
getMaximum()
获取字段可以占用的最大值。long
getMinimum()
获取字段可以占用的最小值。long
getSmallestMaximum()
获取该字段可以采用的最小可能最大值。int
hashCode()
此范围的哈希码。boolean
isFixed()
值范围是固定的并且是完全已知的。boolean
isIntValue()
检查范围内的所有值是否适合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)
获得完全可变的值范围。String
toString()
将此范围输出为String
。
-
-
-
方法详细信息
-
of
public static ValueRange of(long min, long max)
获得固定值范围。该工厂获得最小值和最大值固定的范围。 例如,ISO月份总是从1到12。
- 参数
-
min
- 最小值 -
max
- 最大值 - 结果
- ValueRange为min,max,not null
- 异常
-
IllegalArgumentException
- 如果最小值大于最大值
-
of
public static ValueRange of(long min, long maxSmallest, long maxLargest)
获取变量值范围。该工厂获得最小值固定的范围,最大值可能会有所不同。 例如,ISO日历始终从1开始,但是在28和31之间结束。
- 参数
-
min
- 最小值 -
maxSmallest
- 最小最大值 -
maxLargest
- 最大最大值 - 结果
- ValueRange为最小值,最小值最大值,最大值最大值,非空值
- 异常
-
IllegalArgumentException
- 如果最小值大于最小最大值,或最小最大值大于最大值
-
of
public static ValueRange of(long minSmallest, long minLargest, long maxSmallest, long maxLargest)
获得完全可变的值范围。该工厂获得最小值和最大值可能会有所不同的范围。
- 参数
-
minSmallest
- 最小的最小值 -
minLargest
- 最大的最小值 -
maxSmallest
- 最小最大值 -
maxLargest
- 最大最大值 - 结果
- ValueRange为最小最小,最大最小,最小最大值,最大最大值,非空值
- 异常
-
IllegalArgumentException
- 如果最小的最小值大于最小的最大值,或者最小的最大值大于最大的最大值,或者最大的最小值大于最大的最大值
-
isFixed
public boolean isFixed()
值范围是固定的并且是完全已知的。例如,ISO的日期是从1到28和31之间。由于有最大值的不确定性,范围是不固定的。 但是,1月份,范围总是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 nano-of-day的运行时间从1到86,400,000,000,000不符合int
。此实现使用
getMinimum()
和getMaximum()
。- 结果
-
如果有效值始终符合
int
-
isValidValue
public boolean isValidValue(long value)
检查该值是否在有效范围内。这检查该值是否在存储的值范围内。
- 参数
-
value
- 要检查的值 - 结果
- 如果值有效,则为true
-
isValidIntValue
public boolean isValidIntValue(long value)
检查值是否在有效范围内,范围内的所有值都适合int
。该方法结合了
isIntValue()
和isValidValue(long)
。- 参数
-
value
- 要检查的值 - 结果
-
如果值有效并适合于
int
-
checkValidValue
public long checkValidValue(long value, TemporalField field)
检查指定的值是否有效。这将验证该值在有效的值范围内。 该字段仅用于改进错误消息。
- 参数
-
value
- 要检查的值 -
field
- 被检查的字段可以为空 - 结果
- 传入的价值
- 另请参见:
-
isValidValue(long)
-
checkValidIntValue
public int checkValidIntValue(long value, TemporalField field)
检查指定的值是否有效并适合int
。这将验证该值在有效的值范围内,并且所有有效值都在
int
的范围内。 该字段仅用于改进错误消息。- 参数
-
value
- 要检查的值 -
field
- 被检查的字段可以为空 - 结果
- 传入的价值
- 另请参见:
-
isValidIntValue(long)
-
equals
public boolean equals(Object obj)
检查此范围是否等于另一个范围。比较是基于四个值,最小值,最大值,最小值,最小值和最大值。 只对
ValueRange
类型的ValueRange
进行比较,其他类型返回false。- 重写:
-
equals
在Object
- 参数
-
obj
- 要检查的对象,null返回false - 结果
- 如果这等于其他范围,则为true
- 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
此范围的哈希码。- 重写:
-
hashCode
在Object
- 结果
- 一个合适的哈希码
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-