java.lang.Object
jdk.dynalink.linker.support.TypeUtilities
public final class TypeUtilities extends Object
Java型を操作するためのさまざまな静的ユーティリティ・メソッド。
-
メソッドのサマリー
修飾子と型 メソッド 説明 static Class<?>
getPrimitiveType(クラス<?> wrapperType)
プリミティブ型のラッパーを表すクラスを渡すと、対応するプリミティブ型を表すクラスを返します。static Class<?>
getPrimitiveTypeByName(String name)
プリミティブ型の名前を指定すると、それを表すクラスが返されます。static Class<?>
getWrapperType(クラス<?> primitiveType)
プリミティブ型を表すクラスが渡されると、対応するラッパー型を表すクラスを返します。static boolean
isConvertibleWithoutLoss(Class<?> sourceType, Class<?> targetType)
精度を失うことなく型を別の型に変換できるかどうかを判定します。static boolean
isMethodInvocationConvertible(Class<?> sourceType, Class<?> targetType)
JLS 5.3 "メソッド起動変換"のように、メソッドの呼び出し変換を使用して1つの型を別の型に変換できるかどうかを判定します。static boolean
isSubtype(Class<?> subType, Class<?> superType)
JLS 4.10 "サブ型"のように、ある型が別の型のサブ型であるかどうかを判別します。static boolean
isWrapperType(クラス<?> type)
渡された型がプリミティブ型のラッパーである場合はtrueを返します。
-
メソッドの詳細
-
isMethodInvocationConvertible
JLS 5.3 "メソッド起動変換"のように、メソッドの呼び出し変換を使用して1つの型を別の型に変換できるかどうかを判定します。 基本的には、(isSubtype(Class, Class)
を参照してください)とboxing conversion (JLS 5.1.7)をサブ型化することで、すべてのコンバージョンを可能にします。オプションで拡大参照変換を行い、unboxing conversion (JLS 5.1.8)にオプションで拡張プリミティブ変換を続けます。- パラメータ:
sourceType
- (パラメータ型のコール・サイト型、戻り型のメソッド型)から変換される型targetType
- パラメータの型は(パラメータ型のメソッド型、戻り型のコール型)に変換されます。- 戻り値:
- ソース型がターゲット型に変換可能なメソッド呼び出しである場合はtrue。
-
isConvertibleWithoutLoss
精度を失うことなく型を別の型に変換できるかどうかを判定します。 特殊なケースとして、voidはvoidとObject
(null
またはDynamicLinkerFactory.setAutoConversionStrategy(MethodTypeConversionStrategy)
で設定されたカスタム値としてのいずれか)のみに変換可能と見なされます。 幾分直感的には、voidに変換すると最終的にデータが失われるにもかかわらず、voidに変換できるものがあるとみなします。 他方、ボイドへの変換は、本質的に値が無関係であり、廃棄されるべきであることを意味するので、精度を維持するという期待はありません。- パラメータ:
sourceType
- ソース型targetType
- ターゲット型- 戻り値:
- 可逆変換が可能な場合はtrue
-
isSubtype
JLS 4.10 "サブ型"のように、ある型が別の型のサブ型であるかどうかを判別します。 ノート: これは厳密または適切なサブ型ではないため、同じ型に対してもtrueが返されます。完全に正確であるために、それは恒等変換(JLS 5.1.1)、原始変換(JLS 5.1.2)および拡大基準変換(JLS 5.1.5)を広げることを可能にします。- パラメータ:
subType
- 想定されるサブ型superType
- 想定されるサブ型のスーパー型- 戻り値:
- subTypeがアイデンティティ変換、プリミティブ変換の拡張、またはsuperTypeへの参照変換の拡大によって変換できる場合は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。
-