- java.lang.Object
-
- java.time.temporal.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
- 另请参见:
- Serialized Form
-
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 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
- 要检查的值 -
字段
- 正在检查的字段可能为null - 结果
- 传入的值
- 另请参见:
-
isValidValue(long)
-
checkValidIntValue
public int checkValidIntValue(long value, TemporalField field)
检查指定的值是否有效并且适合int
。这将验证该值是否在有效值范围内,并且所有有效值都在
int
的范围内。 该字段仅用于改进错误消息。- 参数
-
value
- 要检查的值 -
字段
- 正在检查的字段可能为null - 结果
- 传入的值
- 另请参见:
-
isValidIntValue(long)
-
equals
public boolean equals(Object obj)
检查此范围是否等于另一个范围。比较基于四个值,最小值,最小值,最小值和最大值。 仅比较类型为
ValueRange
对象,其他类型返回false。- 重写:
-
equals
in classObject
- 参数
-
obj
- 要检查的对象,null返回false - 结果
- 如果这等于其他范围,则为true
- 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
此范围的哈希码。- 重写:
-
hashCode
在课程Object
- 结果
- 合适的哈希码
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-