public final class ValueRange extends Object implements Serializable
所有TemporalField
实例都具有有效的值范围。 例如,ISO日期从1到28到31之间。这个类捕获有效范围。
了解这个课程的局限性很重要。 只提供最小值和最大值。 在外部范围内可能存在无效值。 例如,奇怪的字段可能具有1,2,4,6,7的有效值,因此具有范围“1 - 7”,尽管值3和5无效。
这个类的实例不是绑定到一个特定的领域。
Modifier and Type | Method and Description |
---|---|
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 。
|
public static ValueRange of(long min, long max)
该工厂获得最小值和最大值固定的范围。 例如,ISO月份总是从1到12。
min
- 最小值
max
- 最大值
IllegalArgumentException
- 如果最小值大于最大值
public static ValueRange of(long min, long maxSmallest, long maxLargest)
该工厂获得最小值固定的范围,最大值可能会有所不同。 例如,ISO日历始终从1开始,但是在28和31之间结束。
min
- 最小值
maxSmallest
- 最小的最大值
maxLargest
- 最大最大值
IllegalArgumentException
- 如果最小值大于最小最大值,或最小最大值大于最大值
public static ValueRange of(long minSmallest, long minLargest, long maxSmallest, long maxLargest)
该工厂获得最小值和最大值可能会有所不同的范围。
minSmallest
- 最小的最小值
minLargest
- 最大的最小值
maxSmallest
- 最小的最大值
maxLargest
- 最大最大值
IllegalArgumentException
- 如果最小最小值大于最小最大值,或最小最大值大于最大最大值或最大最大值最大值最大值最大值
public boolean isFixed()
例如,ISO的日期是从1到28和31之间。由于有最大值的不确定性,范围是不固定的。 但是,1月份,范围总是1到31,因此是固定的。
public long getMinimum()
例如,ISO的日期始终从1开始。因此,最小值为1。
public long getLargestMinimum()
例如,ISO的日期始终始于1.最大的最小值为1。
public long getSmallestMaximum()
例如,ISO的日期为28到31天。 因此最小的最大值为28。
public long getMaximum()
例如,ISO的日期为28到31天。 因此最大值为31。
public boolean isIntValue()
int
。
这检查所有有效值是否在int
的范围内。
例如,ISO月份的值从1到12,符合int
。 相比之下,ISO nano-of-day的运行时间从1到86,400,000,000,000不符合int
。
此实现使用getMinimum()
和getMaximum()
。
int
public boolean isValidValue(long value)
这检查该值是否在存储的值范围内。
value
- 要检查的值
public boolean isValidIntValue(long value)
int
。
该方法结合了isIntValue()
和isValidValue(long)
。
value
- 要检查的值
int
public long checkValidValue(long value, TemporalField field)
这将验证该值在有效的值范围内。 该字段仅用于改进错误消息。
value
- 要检查的值
field
- 被检查的字段可能为null
isValidValue(long)
public int checkValidIntValue(long value, TemporalField field)
int
。
这将验证该值在有效的值范围内,并且所有有效值都在int
的范围内。 该字段仅用于改进错误消息。
value
- 要检查的值
field
- 被检查的字段可以为空
isValidIntValue(long)
public boolean equals(Object obj)
比较是基于四个值,最小值,最大值,最小值,最小值和最大值。 只比较类型为ValueRange
对象,其他类型返回false。
equals
中的
Object
obj
- 要检查的对象,null返回false
Object.hashCode()
, HashMap
public int hashCode()
hashCode
在
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)