モジュール 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
    この範囲が別の範囲と等しいかどうかをチェックします。
    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の場合もあり
      戻り値:
      渡された値
      関連項目:
    • checkValidIntValue

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

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

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

      public boolean equals(Object obj)
      この範囲が別の範囲と等しいかどうかをチェックします。

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

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

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

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

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

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