クラス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からbyteはbyteにリダイレクトし、同様にshortからchar、charからbyteおよびcharからshortは、intをとる対応するメソッドへをisIntToByteExact(int)に))も省略されます。 - Java言語仕様を参照してください:
-
「5.7.1 正確なテスト変換」
「5.7.2 無条件で正確なテスト変換」
「15.20.2 instanceof演算子」 - 導入されたバージョン:
- 23
-
メソッドのサマリー
修飾子と型メソッド説明static booleanisDoubleToByteExact(double n) doubleからbyteまでの完全性メソッドstatic booleanisDoubleToCharExact(double n) doubleからcharへの完全性メソッドstatic booleanisDoubleToFloatExact(double n) doubleからfloatまでの完全性メソッドstatic booleanisDoubleToIntExact(double n) doubleからintへの完全性メソッドstatic booleanisDoubleToLongExact(double n) doubleからlongまでの完全性メソッドstatic booleanisDoubleToShortExact(double n) doubleからshortへの完全性メソッドstatic booleanisFloatToByteExact(float n) floatからbyteへの完全性メソッドstatic booleanisFloatToCharExact(float n) floatからcharへの完全性メソッドstatic booleanisFloatToIntExact(float n) floatからintへの完全性メソッドstatic booleanisFloatToLongExact(float n) floatからlongへの完全性メソッドstatic booleanisFloatToShortExact(float n) floatからshortへの完全性メソッドstatic booleanisIntToByteExact(int n) intからbyteまでの完全性メソッドstatic booleanisIntToCharExact(int n) intからcharへの完全性メソッドstatic booleanisIntToFloatExact(int n) intからfloatまでの完全性メソッドstatic booleanisIntToShortExact(int n) intからshortへの完全性メソッドstatic booleanisLongToByteExact(long n) longからbyteまでの完全性メソッドstatic booleanisLongToCharExact(long n) longからcharまでの完全性メソッドstatic booleanisLongToDoubleExact(long n) longからdoubleまでの完全性メソッドstatic booleanisLongToFloatExact(long n) longからfloatまでの完全性メソッドstatic booleanisLongToIntExact(long n) longからintまでの完全性メソッドstatic booleanisLongToShortExact(long n) longからshortまでの完全性メソッド
-
メソッドの詳細
-
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
-