模块 java.base

类 ValueRange

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
参见:
  • 方法总结

    修饰符和类型
    方法
    描述
    int
    checkValidIntValue(long value, TemporalField field)
    检查指定的值是否有效并适合 int
    long
    checkValidValue(long value, TemporalField field)
    检查指定的值是否有效。
    boolean
    equals(Object obj)
    检查此范围是否等于另一个范围。
    long
    获取该字段可以采用的最大可能最小值。
    long
    获取字段可以取的最大值。
    long
    获取字段可以采用的最小值。
    long
    获取字段可以采用的最小可能最大值。
    int
    此范围的哈希码。
    boolean
    值域是否固定且完全已知。
    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)
    获得完全可变的值范围。
    将此范围输出为 String

    在类 java.lang.Object 中声明的方法

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • 方法详情

    • of

      public static ValueRange  of(long min, long max)
      获得一个固定的取值范围。

      该工厂获得一个范围,其中最小值和最大值是固定的。例如,ISO 月份总是从 1 到 12。

      参数:
      min - 最小值
      max - 最大值
      返回:
      最小值、最大值的 ValueRange,不为空
      抛出:
      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 day-of-month 从 1 到 28 到 31 之间。由于最大值存在不确定性,因此范围不固定。但是,对于一月份,范围始终为 1 到 31,因此它是固定的。

      返回:
      如果值集是固定的,则为真
    • 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 - 要检查的值
      返回:
      如果值有效则为真
    • isValidIntValue

      public boolean isValidIntValue(long value)
      检查该值是否在有效范围内,以及该范围内的所有值是否都在 int 中。

      此方法结合了 isIntValue() isValidValue(long)

      参数:
      value - 要检查的值
      返回:
      如果该值有效且适合 int,则为真
    • checkValidValue

      public long checkValidValue(long value, TemporalField  field)
      检查指定的值是否有效。

      这将验证该值是否在有效值范围内。该字段仅用于改进错误消息。

      参数:
      value - 要检查的值
      field - 正在检查的字段,可能为空
      返回:
      传入的值
      参见:
    • checkValidIntValue

      public int checkValidIntValue(long value, TemporalField  field)
      检查指定的值是否有效并适合 int

      这验证该值在值的有效范围内,并且所有有效值都在 int 的范围内。该字段仅用于改进错误消息。

      参数:
      value - 要检查的值
      field - 正在检查的字段,可能为空
      返回:
      传入的值
      参见:
    • equals

      public boolean equals(Object  obj)
      检查此范围是否等于另一个范围。

      比较基于四个值,最小值、最大最小值、最小最大值和最大值。只比较 ValueRange 类型的对象,其他类型返回 false。

      重写:
      equals 在类 Object
      参数:
      obj - 要检查的对象,null 返回 false
      返回:
      如果这等于另一个范围,则为真
      参见:
    • hashCode

      public int hashCode()
      此范围的哈希码。
      重写:
      hashCode 在类 Object
      返回:
      合适的哈希码
      参见:
    • toString

      public String  toString()
      将此范围输出为 String

      格式将为“{min}/{largestMin} - {smallestMax}/{max}”,其中 largestMin 或 smallestMax 部分可以省略,如果它们与最小值或最大值相同,连同相关的斜线。

      重写:
      toString 在类 Object
      返回:
      此范围的字符串表示形式,不为空