クラス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 boolean
isDoubleToByteExact
(double n) doubleからbyteまでの完全性メソッドstatic boolean
isDoubleToCharExact
(double n) doubleからcharへの完全性メソッドstatic boolean
isDoubleToFloatExact
(double n) doubleからfloatまでの完全性メソッドstatic boolean
isDoubleToIntExact
(double n) doubleからintへの完全性メソッドstatic boolean
isDoubleToLongExact
(double n) doubleからlongまでの完全性メソッドstatic boolean
isDoubleToShortExact
(double n) doubleからshortへの完全性メソッドstatic boolean
isFloatToByteExact
(float n) floatからbyteへの完全性メソッドstatic boolean
isFloatToCharExact
(float n) floatからcharへの完全性メソッドstatic boolean
isFloatToIntExact
(float n) floatからintへの完全性メソッドstatic boolean
isFloatToLongExact
(float n) floatからlongへの完全性メソッドstatic boolean
isFloatToShortExact
(float n) floatからshortへの完全性メソッドstatic boolean
isIntToByteExact
(int n) intからbyteまでの完全性メソッドstatic boolean
isIntToCharExact
(int n) intからcharへの完全性メソッドstatic boolean
isIntToFloatExact
(int n) intからfloatまでの完全性メソッドstatic boolean
isIntToShortExact
(int n) intからshortへの完全性メソッドstatic boolean
isLongToByteExact
(long n) longからbyteまでの完全性メソッドstatic boolean
isLongToCharExact
(long n) longからcharまでの完全性メソッドstatic boolean
isLongToDoubleExact
(long n) longからdoubleまでの完全性メソッドstatic boolean
isLongToFloatExact
(long n) longからfloatまでの完全性メソッドstatic boolean
isLongToIntExact
(long n) longからintまでの完全性メソッドstatic boolean
isLongToShortExact
(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
-