モジュール java.base
パッケージ java.time.temporal

クラス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。null以外
      例外:
      IllegalArgumentException - 最小値が最大値より大きい場合
    • of

      public static ValueRange of(long min, long maxSmallest, long maxLargest)
      可変の値範囲を取得します。

      このファクトリは、最小値が固定で最大値が可変の範囲を取得します。 たとえば、ISO暦の「月の日」は常に1から始まりますが、28と31の間で終わります。

      パラメータ:
      min - 最小値
      maxSmallest - 最小の最大値
      maxLargest - 最大の最大値
      戻り値:
      最小値、最小の最大値、最大の最大値に対応するValueRange。null以外
      例外:
      IllegalArgumentException - 最小値が最小の最大値より大きいか、最小の最大値が最大の最大値より大きい場合
    • of

      public static ValueRange of(long minSmallest, long minLargest, long maxSmallest, long maxLargest)
      完全に可変の値範囲を取得します。

      このファクトリは、最小値と最大値の両方が可変の範囲を取得します。

      パラメータ:
      minSmallest - 最小の最小値
      minLargest - 最大の最小値
      maxSmallest - 最小の最大値
      maxLargest - 最大の最大値
      戻り値:
      最小の最小値、最大の最小値、最小の最大値、最大の最大値に対応するValueRange。null以外
      例外:
      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暦の「1日のうちのナノ秒」は1から86,400,000,000,000までで、これはintに収まりません。

      この実装は、getMinimum()getMaximum()を使用します。

      戻り値:
      有効な値が常にintに収まる場合はtrue
    • isValidValue

      public boolean isValidValue(long value)
      値が有効な範囲内にあるかどうかを確認します。

      値が保存された値の範囲内にあるかどうかを確認します。

      パラメータ:
      value - チェックする値
      戻り値:
      値が有効な場合はtrue
    • isValidIntValue

      public boolean isValidIntValue(long value)
      値が有効な範囲内にあり、範囲内のすべての値がintに収まることを確認します。

      このメソッドはisIntValue()isValidValue(long)を組み合せます。

      パラメータ:
      value - チェックする値
      戻り値:
      値が有効でintに収まる場合はtrue
    • checkValidValue

      public long checkValidValue(long value, TemporalField field)
      指定された値が有効であることを確認します。

      値が有効な範囲内にあることを検証します。 このフィールドはエラー・メッセージを向上させるためだけに使用されます。

      パラメータ:
      value - チェックする値
      field - チェック対象のフィールド。nullの場合もあり
      戻り値:
      渡された値
      関連項目:
      isValidValue(long)
    • checkValidIntValue

      public int checkValidIntValue(long value, TemporalField field)
      指定された値が有効で、intに収まることを確認します。

      値が有効な範囲内にあり、すべての有効値がintの境界に収まることを検証します。 このフィールドはエラー・メッセージを向上させるためだけに使用されます。

      パラメータ:
      value - チェックする値
      field - チェック対象のフィールド。nullの場合もあり
      戻り値:
      渡された値
      関連項目:
      isValidIntValue(long)
    • equals

      public boolean equals(Object obj)
      この範囲がもう一方の範囲と等しいかどうかを確認します。

      比較は4つの値(最小値、最大の最小値、最小の最大値、最大値)に基づいて行われます。 ValueRange型のオブジェクトのみが比較され、それ以外の型ではfalseが返されます。

      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      obj - チェックするオブジェクト、nullはfalseを返す
      戻り値:
      これがもう一方の範囲と等しい場合はtrue
      関連項目:
      Object.hashCode()HashMap
    • hashCode

      public int hashCode()
      この範囲のハッシュ・コード。
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      適切なハッシュ・コード
      関連項目:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
    • toString

      public String toString()
      この範囲をStringとして出力します。

      フォーマットは「{min}/{largestMin} - {smallestMax}/{max}」となります。ここで、largestMinまたはsmallestMaxのセクションは、minまたはmaxと同じであれば、関連するスラッシュとともに省略できます。

      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      この範囲の文字列表現。null以外