クラス ReflectionHelper

java.lang.ObjectSE
org.springframework.expression.spel.support.ReflectionHelper

public abstract class ReflectionHelper extends ObjectSE
リフレクションリゾルバーコードによって使用されるユーティリティメソッド。式で使用する適切なメソッド、コンストラクター、フィールドを検出します。
導入:
3.0
作成者:
Andy Clement, Juergen Hoeller, Sam Brannen
  • コンストラクターの詳細

    • 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, @Nullable ObjectSE[] arguments, MethodSE method) throws SpelEvaluationException
      指定された引数セットを、指定された MethodSE のパラメーター型に変換します。

      指定されたメソッドが varargs メソッドの場合、最終パラメーター型は、コンポーネント型が余分な引数の変換ターゲットとして使用される配列である必要があります。例: パラメーター型が {Integer, String[]} で、入力引数が {Integer, boolean, float} の場合、boolean と float の両方を文字列に変換する必要があります。

      このメソッドは、引数を varargs 呼び出しに適した形式に再パッケージ化しません。そのためには、後続の setupArgumentsForVarargsInvocation(Class[], Object...) の呼び出しが必要です。

      パラメーター:
      converter - 型変換に使用するコンバーター
      arguments - 必要なパラメーター型に変換する引数
      method - ターゲット Method
      戻り値:
      true 引数で何らかの変換が発生した場合
      例外:
      SpelEvaluationException - 変換中に問題が発生した場合
    • convertAllMethodHandleArguments

      public static boolean convertAllMethodHandleArguments(TypeConverter converter, @Nullable ObjectSE[] arguments, MethodHandleSE methodHandle, @Nullable IntegerSE varargsPosition) throws EvaluationException
      varargs の位置を考慮して、指定された引数セットを指定された MethodHandleSE のパラメーター型に変換します。

      引数は入力配列内で「インプレース」変換されます。

      パラメーター:
      converter - 型変換に使用するコンバーター
      arguments - 必要なパラメーター型に変換する引数
      methodHandle - ターゲット MethodHandle
      varargsPosition - 可変引数引数の既知の位置 (存在する場合) (可変引数でない場合は null )
      戻り値:
      true 引数で何らかの変換が発生した場合
      例外:
      EvaluationException - 変換中に問題が発生した場合
      導入:
      6.1
    • setupArgumentsForVarargsInvocation

      public static @Nullable ObjectSE[] setupArgumentsForVarargsInvocation(ClassSE<?>[] requiredParameterTypes, @Nullable ObjectSE... args)
      提供された args を、requiredParameterTypes で期待されるものと正しく一致するようにパッケージ化します。

      例: 2 番目のパラメーターが String... として宣言されたために requiredParameterTypes が (int, String[]) である場合、args が [1, "a", "b"] であれば、予想される型と一致させるために [1, new String[] {"a", "b"}] として再パッケージ化する必要があります。

      パラメーター:
      requiredParameterTypes - 呼び出し用のパラメーターの型
      args - 呼び出しのために設定される引数
      戻り値:
      可変引数の設定が行われた引数の再パッケージ化された配列