模块  java.base
软件包  java.time.temporal

Class 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
    • 方法详细信息

      • 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 class Object
        参数
        obj - 要检查的对象,null返回false
        结果
        如果这等于其他范围,则为true
        另请参见:
        Object.hashCode()HashMap
      • toString

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

        格式为'{min} / {largestMin} - {smallestMax} / {max}',其中最大的Min或smallestMax部分以及相关的斜杠可以省略,如果它们与min或max相同。

        重写:
        toString在课程 Object
        结果
        a string representation of this range, not null