public abstract class GenericTypeResolver
extends java.lang.Object
主にフレームワーク内での使用を目的としており、一般的に宣言されている場合でもメソッドのパラメーター型を解決します。
コンストラクターと説明 |
---|
GenericTypeResolver() |
修飾子と型 | メソッドと説明 |
---|---|
static java.lang.reflect.Type | getTargetType(MethodParameter methodParameter) 使用すべきではありません。 Spring 4.0 以降は MethodParameter.getGenericParameterType() を使用 |
static java.util.Map<java.lang.reflect.TypeVariable,java.lang.reflect.Type> | getTypeVariableMap(java.lang.Class<?> clazz) 指定された Class の TypeVariable names から concrete classes へのマッピングを作成します。 |
static java.lang.Class<?> | resolveParameterType(MethodParameter methodParameter, java.lang.Class<?> implementationClass) 指定されたジェネリクスパラメーター型のターゲット型を決定します。 |
static java.lang.Class<?> | resolveReturnType(java.lang.reflect.Method method, java.lang.Class<?> clazz) 指定されたクラスの正式な型変数が宣言されている、指定されたメソッドのジェネリクス戻り値型のターゲット型を決定します。 |
static java.lang.Class<?> | resolveReturnTypeArgument(java.lang.reflect.Method method, java.lang.Class<?> genericIfc) 指定されたインターフェースまたはその実装を返すと想定される指定されたターゲットメソッドに対して、指定されたジェネリクスインターフェースの単一の型引数を解決します。 |
static java.lang.Class<?> | resolveReturnTypeForGenericMethod(java.lang.reflect.Method method, java.lang.Object[] args, java.lang.ClassLoader classLoader) 使用すべきではありません。 Spring Framework 4.3.8 以降、 ResolvableType の使用箇所に置き換えられました |
static java.lang.Class<?> | resolveType(java.lang.reflect.Type genericType, java.util.Map<java.lang.reflect.TypeVariable,java.lang.reflect.Type> map) 指定された TypeVariable マップに対して指定されたジェネリクス型を解決します。 |
static java.lang.Class<?> | resolveTypeArgument(java.lang.Class<?> clazz, java.lang.Class<?> genericIfc) 指定されたジェネリクスインターフェースの単一の型引数を、指定されたターゲットクラスに対して解決します。これは、ジェネリクスインターフェースを実装していると想定され、型変数の具象型を宣言する可能性があります。 |
static java.lang.Class<?>[] | resolveTypeArguments(java.lang.Class<?> clazz, java.lang.Class<?> genericIfc) ジェネリクスインターフェースを実装すると想定されている特定のターゲットクラスに対して、特定のジェネリクスインターフェースの型引数を解決し、場合によってはその型変数の具象型を宣言します。 |
@Deprecated public static java.lang.reflect.Type getTargetType(MethodParameter methodParameter)
MethodParameter.getGenericParameterType()
を使用してください。methodParameter
- メソッドパラメーターの指定 public static java.lang.Class<?> resolveParameterType(MethodParameter methodParameter, java.lang.Class<?> implementationClass)
methodParameter
- メソッドパラメーターの指定 implementationClass
- 型変数を解決するクラス public static java.lang.Class<?> resolveReturnType(java.lang.reflect.Method method, java.lang.Class<?> clazz)
method
- イントロスペクトする方法 clazz
- 型変数を解決するクラス @Deprecated public static java.lang.Class<?> resolveReturnTypeForGenericMethod(java.lang.reflect.Method method, java.lang.Object[] args, java.lang.ClassLoader classLoader)
例: 次のシグネチャーを持つファクトリメソッドが指定されている場合、resolveReturnTypeForGenericMethod()
が creatProxy()
のリフレクションメソッドと MyService.class
を含む Object[]
配列を使用して呼び出されると、resolveReturnTypeForGenericMethod()
はターゲットの戻り値の型が MyService
であると推論します。
public static <T> T createProxy(Class<T> clazz)
method
が正式な型変数を宣言していない場合、標準の戻り型 null
、指定された引数配列の長さが、指定されたメソッドの仮引数リストの長さよりも短い場合 method
- イントロスペクトする方法、決して null
ではない args
- メソッドが呼び出されたときに渡される引数 (非 null
)classLoader
- 必要に応じてクラス名を解決するための ClassLoader (null
の場合があります)null
public static java.lang.Class<?> resolveReturnTypeArgument(java.lang.reflect.Method method, java.lang.Class<?> genericIfc)
method
- 戻り値の型をチェックするターゲットメソッド genericIfc
- 型引数を解決するための汎用インターフェースまたはスーパークラス WildcardType
型の場合は null
。public static java.lang.Class<?> resolveTypeArgument(java.lang.Class<?> clazz, java.lang.Class<?> genericIfc)
clazz
- チェックするターゲットクラス genericIfc
- 型引数を解決するための汎用インターフェースまたはスーパークラス null
public static java.lang.Class<?>[] resolveTypeArguments(java.lang.Class<?> clazz, java.lang.Class<?> genericIfc)
clazz
- チェックするターゲットクラス genericIfc
- 型引数を解決するための汎用インターフェースまたはスーパークラス null
public static java.lang.Class<?> resolveType(java.lang.reflect.Type genericType, java.util.Map<java.lang.reflect.TypeVariable,java.lang.reflect.Type> map)
Spring Data で使用されます。
genericType
- 解決するジェネリクス型 map
- 解決する TypeVariable マップ Object.class
public static java.util.Map<java.lang.reflect.TypeVariable,java.lang.reflect.Type> getTypeVariableMap(java.lang.Class<?> clazz)
Class
の TypeVariable names
から concrete classes
へのマッピングを作成します。型とインターフェースを含むすべてのスーパー型を検索します。