java.lang.Object
jdk.dynalink.linker.support.TypeUtilities
public final class TypeUtilities extends Object
Java型を操作するための様々な静的ユーティリティ・メソッド。
-
メソッドのサマリー
修飾子と型メソッド説明static Class
<?> getPrimitiveType
(Class<?> wrapperType) プリミティブ型のラッパーを表すクラスを渡すと、対応するプリミティブ型を表すクラスが返されます。static Class
<?> getPrimitiveTypeByName
(String name) プリミティブ型の名前を指定すると、その型を表すクラスが返されます。static Class
<?> getWrapperType
(Class<?> primitiveType) プリミティブ型を表すクラスを渡すと、対応するラッパー型を表すクラスが返されます。static boolean
isConvertibleWithoutLoss
(Class<?> sourceType, Class<?> targetType) 精度を失うことなく、型を別の型に変換できるかどうかを決定します。static boolean
isMethodInvocationConvertible
(Class<?> sourceType, Class<?> targetType) JLS 5.3 "メソッド起動変換"に従って、ある型をメソッド呼出し変換を使用して別の型に変換できるかどうかを決定します。static boolean
JLS 4.10 "サブ型"に従って、ある型が別の型のサブタイプであるかどうかを決定します。static boolean
isWrapperType
(Class<?> type) 渡された型がプリミティブ型のラッパーである場合にtrueを返します。
-
メソッドの詳細
-
isMethodInvocationConvertible
JLS 5.3 "メソッド起動変換"に従って、ある型をメソッド呼出し変換を使用して別の型に変換できるかどうかを決定します。 これは基本的に、(isSubtype(Class, Class)
を参照してください)をサブタイプしたり、ボクシング変換(JLS 5.1.7)の後にオプションで参照変換を広げたり、変換(JLS 5.1.8)をアンボックス化した後でプリミティブ変換を広げることによって許可されるすべての変換です。- パラメータ:
sourceType
- (パラメータ・タイプのコール・サイト・タイプ、戻りタイプのメソッド・タイプ)から変換される型targetType
- パラメータの型は(パラメータ・タイプのメソッド・タイプ、戻り型のコール・サイト・タイプ)に変換されます。- 戻り値:
- ソース・タイプがメソッド呼出しのターゲット・タイプに変換可能な場合はtrue。
-
isConvertibleWithoutLoss
精度を失うことなく、型を別の型に変換できるかどうかを決定します。 特殊なケースとして、voidはvoidおよびObject
(null
またはDynamicLinkerFactory.setAutoConversionStrategy(MethodTypeConversionStrategy)
で設定されたカスタム値としてのいずれか)にのみ変換可能とみなされます。 どちらかといえば直感的に言えば、voidに変換すると究極のデータが失われることになるにもかかわらず、何でもvoidに変換できると考えています。 一方、voidへの変換は、基本的にその値が興味を持たず、破棄する必要があることを意味するため、精度を保持する期待はありません。- パラメータ:
sourceType
- ソース型targetType
- ターゲット型- 戻り値:
- 可逆変換が可能な場合はtrue
-
isSubtype
JLS 4.10 "サブ型"に従って、ある型が別の型のサブタイプであるかどうかを決定します。 ノート: これは厳密または適切なサブタイプではないため、同じタイプに対してもtrueが返されます。完全に正確には、アイデンティティ変換(JLS 5.1.1)、プリミティブ変換(JLS 5.1.2)の拡大、および参照変換(JLS 5.1.5)の拡大が可能です。- パラメータ:
subType
- 想定されるサブ型superType
- 想定されるサブ型のスーパー型- 戻り値:
- アイデンティティ変換、プリミティブ変換の拡大、またはsuperTypeへの参照変換の拡大によってsubTypeを変換できる場合はtrue。
-
getPrimitiveTypeByName
プリミティブ型の名前を指定すると、その型を表すクラスが返されます。 つまり、"int"で呼び出されると、Integer.TYPE
が返されます。- パラメータ:
name
- プリミティブ型の名前- 戻り値:
- プリミティブ型を表すクラス、または名前がプリミティブ型に対応しない場合はnull。
-
getPrimitiveType
プリミティブ型のラッパーを表すクラスを渡すと、対応するプリミティブ型を表すクラスが返されます。 つまり、Integer.class
で呼び出すとInteger.TYPE
が返されます。 プリミティブ型のラッパーではないクラスを渡すと、nullが返されます。- パラメータ:
wrapperType
- プリミティブ型のラッパーを表すクラス・オブジェクト。- 戻り値:
- プリミティブ型を表すクラス・オブジェクト。渡されたクラスがプリミティブ・ラッパーでない場合はnull。
-
getWrapperType
プリミティブ型を表すクラスを渡すと、対応するラッパー型を表すクラスが返されます。 つまり、int.class
で呼び出すとInteger.class
が返されます。 プリミティブ型ではないクラスを渡すと、nullが返されます。- パラメータ:
primitiveType
- 基本型を表すクラス・オブジェクト- 戻り値:
- ラッパー型を表すクラス・オブジェクト。渡されたクラスがプリミティブでない場合はnull。
-
isWrapperType
public static boolean isWrapperType(Class<?> type) 渡された型がプリミティブ型のラッパーである場合にtrueを返します。- パラメータ:
type
- 検査された型- 戻り値:
- 渡された型がプリミティブ型のラッパーである場合はtrue。
-