Module  java.base
软件包  java.time.temporal

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

      • 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。

        重写:
        equalsObject
        参数
        obj - 要检查的对象,null返回false
        结果
        如果这等于其他范围,则为true
        另请参见:
        Object.hashCode()HashMap
      • toString

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

        格式将是“{min} / {maximumMin} - {minimalMax} / {max}',其中最大的Min或minimumMax部分可以被省略,以及相关的斜杠,如果它们与min或max相同。

        重写:
        toStringObject
        结果
        a string representation of this range, not null