クラス ReflectionHelper
java.lang.ObjectSE
org.springframework.expression.spel.support.ReflectionHelper
式で使用する必要がある適切なメソッド / コンストラクターおよびフィールドを検出するためにリフレクションリゾルバーコードによって使用されるユーティリティメソッド。
- 導入:
- 3.0
- 作成者:
- Andy Clement, Juergen Hoeller, Sam Brannen
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明static boolean
convertAllArguments
(TypeConverter converter, ObjectSE[] arguments, MethodSE method) 指定された引数のセットをリクエストされた型に変換します。static boolean
convertAllMethodHandleArguments
(TypeConverter converter, ObjectSE[] arguments, MethodHandleSE methodHandle, IntegerSE varargsPosition) 引数値の入力セットを受け取り、必須パラメーターの型として指定された型に変換します。static int
getTypeDifferenceWeight
(ListSE<TypeDescriptor> paramTypes, ListSE<TypeDescriptor> argTypes) MethodInvoker.getTypeDifferenceWeight(Class[], Object[])
に基づいていますが、TypeDescriptors で動作します。static ObjectSE[]
setupArgumentsForVarargsInvocation
(ClassSE<?>[] requiredParameterTypes, ObjectSE... args) 提供されたargs
を、requiredParameterTypes
で期待されるものと正しく一致するようにパッケージ化します。
コンストラクターの詳細
ReflectionHelper
public ReflectionHelper()
メソッドの詳細
getTypeDifferenceWeight
public static int getTypeDifferenceWeight(ListSE<TypeDescriptor> paramTypes, ListSE<TypeDescriptor> argTypes) MethodInvoker.getTypeDifferenceWeight(Class[], Object[])
に基づいていますが、TypeDescriptors で動作します。convertAllArguments
public static boolean convertAllArguments(TypeConverter converter, ObjectSE[] arguments, MethodSE method) throws SpelEvaluationException 指定された引数セットをリクエストされた型に変換します。parameterTypes が varargs メソッドに関連している場合、parameterTypes 配列の最終エントリは配列自体になります。そのコンポーネント型は、余分な引数の変換ターゲットとして使用する必要があります。(例: parameterTypes が {Integer、String[]} で、入力引数が {Integer、boolean、float} である場合、boolean と float の両方を文字列に変換する必要があります)。このメソッドは、引数を varargs 呼び出しに適した形式に再パッケージ化しません。後続の setupArgumentsForVarargsInvocation 呼び出しでそれが処理されます。- パラメーター:
converter
- 型変換に使用するコンバーターarguments
- リクエストされたパラメーター型に変換する引数method
- ターゲットメソッド- 戻り値:
- 引数でなんらかの変換が発生した場合は true
- 例外:
SpelEvaluationException
- 変換に問題がある場合
convertAllMethodHandleArguments
public static boolean convertAllMethodHandleArguments(TypeConverter converter, ObjectSE[] arguments, MethodHandleSE methodHandle, @Nullable IntegerSE varargsPosition) throws EvaluationException 引数値の入力セットを受け取り、必須パラメーターの型として指定された型に変換します。引数は入力配列内で「インプレース」で変換されます。- パラメーター:
converter
- 変換を試みるために使用する型コンバーターarguments
- 変換が必要な実際の引数methodHandle
- ターゲット MethodHandlevarargsPosition
- 可変引数引数の既知の位置 (存在する場合) (可変引数でない場合はnull
)- 戻り値:
true
引数で何らかの変換が発生した場合- 例外:
EvaluationException
- 変換中に問題が発生した場合- 導入:
- 6.1
setupArgumentsForVarargsInvocation
public static ObjectSE[] setupArgumentsForVarargsInvocation(ClassSE<?>[] requiredParameterTypes, ObjectSE... args) 提供されたargs
を、requiredParameterTypes
で期待されるものと正しく一致するようにパッケージ化します。例: 2 番目のパラメーターが
String...
として宣言されたためにrequiredParameterTypes
が(int, String[])
である場合、args
が[1, "a", "b"]
であれば、予想される型と一致させるために[1, new String[] {"a", "b"}]
として再パッケージ化する必要があります。- パラメーター:
requiredParameterTypes
- 呼び出し用のパラメーターの型args
- 呼び出しのために設定される引数- 戻り値:
- 可変引数の設定が行われた引数の再パッケージ化された配列