クラスExactConversionsSupport

java.lang.Object
java.lang.runtime.ExactConversionsSupport

public final class ExactConversionsSupport extends Object
値のテスト変換は、情報が失われても例外をスローしても結果が出る場合は正確です。 それ以外の場合は、不正確です。 一部の変換は、値に関係なく常に正確です。 これらの変換は、無条件に正確であると言われています。

たとえば、値10のintからbyteへの変換は、結果10が元の値と同じであるため、正確です。 対照的に、int変数iに値1000が格納されている場合、byteへの絞込みプリミティブ変換の結果は -24になります。 情報の損失が発生しました: 結果の大きさと符号は、元の値とは異なります。 したがって、値1000のintからbyteへの変換は不正確です。 最後に、byteからintへの拡大するプリミティブ変換は、常に数値の大きさに関する情報が失われずに成功するため、無条件に正確です。

このクラスのメソッドは、プリミティブ型からプリミティブ型への変換をテストする正確性チェックの実行時サポートを提供します。 これらのメソッドは、たとえば、Javaコンパイラ実装でinstanceofおよびパターン・マッチング・ランタイム実装のチェックを実装するために使用できます。 無条件で正確なテスト変換では、実行時に対応するアクションは必要ありません。そのため、これらの正確性チェックに対応するメソッドはここでは省略されます。

実行時変換では、テスト変換を適用する場合に情報が失われるかどうかがチェックされます。 浮動小数点プリミティブ型が関係し、テスト変換の値が符号付きゼロ、符号付き無限大またはNaNのいずれかである場合、これらのメソッドは次に従います:

  • 浮動小数点の負のゼロを整数型に変換することは、不正確であるとみなされます。
  • 浮動小数点NaNまたは無限大を整数型に変換することは、不正確であるとみなされます。
  • 浮動小数点NaN、無限大、または符号付きゼロを別の浮動小数点型に変換することは、正確であるとみなされます。

実装上のノート:
正確性チェックの中には、既存のメソッドのいずれかを使用して安全にリダイレクトできるテストを記述するものがあります。 (つまり、byteからcharへはisIntToCharExact(int)にリダイレクトし、shortからbytebyteにリダイレクトし、同様にshortからcharcharからbyteおよびcharからshortは、intをとる対応するメソッドへをisIntToByteExact(int)に))も省略されます。
導入されたバージョン:
23
関連項目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static boolean
    doubleからbyteまでの完全性メソッド
    static boolean
    doubleからcharへの完全性メソッド
    static boolean
    doubleからfloatまでの完全性メソッド
    static boolean
    doubleからintへの完全性メソッド
    static boolean
    doubleからlongまでの完全性メソッド
    static boolean
    doubleからshortへの完全性メソッド
    static boolean
    floatからbyteへの完全性メソッド
    static boolean
    floatからcharへの完全性メソッド
    static boolean
    floatからintへの完全性メソッド
    static boolean
    floatからlongへの完全性メソッド
    static boolean
    floatからshortへの完全性メソッド
    static boolean
    intからbyteまでの完全性メソッド
    static boolean
    intからcharへの完全性メソッド
    static boolean
    intからfloatまでの完全性メソッド
    static boolean
    intからshortへの完全性メソッド
    static boolean
    longからbyteまでの完全性メソッド
    static boolean
    longからcharまでの完全性メソッド
    static boolean
    longからdoubleまでの完全性メソッド
    static boolean
    longからfloatまでの完全性メソッド
    static boolean
    longからintまでの完全性メソッド
    static boolean
    longからshortまでの完全性メソッド

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • メソッドの詳細

    • isIntToByteExact

      public static boolean isIntToByteExact(int n)
      intからbyteまでの完全性メソッド
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isIntToShortExact

      public static boolean isIntToShortExact(int n)
      intからshortへの完全性メソッド
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isIntToCharExact

      public static boolean isIntToCharExact(int n)
      intからcharへの完全性メソッド
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isIntToFloatExact

      public static boolean isIntToFloatExact(int n)
      intからfloatまでの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isLongToByteExact

      public static boolean isLongToByteExact(long n)
      longからbyteまでの完全性メソッド
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isLongToShortExact

      public static boolean isLongToShortExact(long n)
      longからshortまでの完全性メソッド
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isLongToCharExact

      public static boolean isLongToCharExact(long n)
      longからcharまでの完全性メソッド
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isLongToIntExact

      public static boolean isLongToIntExact(long n)
      longからintまでの完全性メソッド
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isLongToFloatExact

      public static boolean isLongToFloatExact(long n)
      longからfloatまでの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isLongToDoubleExact

      public static boolean isLongToDoubleExact(long n)
      longからdoubleまでの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isFloatToByteExact

      public static boolean isFloatToByteExact(float n)
      floatからbyteへの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isFloatToShortExact

      public static boolean isFloatToShortExact(float n)
      floatからshortへの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isFloatToCharExact

      public static boolean isFloatToCharExact(float n)
      floatからcharへの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isFloatToIntExact

      public static boolean isFloatToIntExact(float n)
      floatからintへの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isFloatToLongExact

      public static boolean isFloatToLongExact(float n)
      floatからlongへの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isDoubleToByteExact

      public static boolean isDoubleToByteExact(double n)
      doubleからbyteまでの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isDoubleToShortExact

      public static boolean isDoubleToShortExact(double n)
      doubleからshortへの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isDoubleToCharExact

      public static boolean isDoubleToCharExact(double n)
      doubleからcharへの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isDoubleToIntExact

      public static boolean isDoubleToIntExact(double n)
      doubleからintへの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isDoubleToLongExact

      public static boolean isDoubleToLongExact(double n)
      doubleからlongまでの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue
    • isDoubleToFloatExact

      public static boolean isDoubleToFloatExact(double n)
      doubleからfloatまでの完全性メソッド
      実装要件:
      Doubleクラスの指定で定義された表現の等価性の概念に依存します。
      パラメータ:
      n - value
      戻り値:
      渡された値をターゲット・タイプに正確に変換できる場合にのみtrue