クラス ReflectiveMethodResolver
java.lang.ObjectSE
org.springframework.expression.spel.support.ReflectiveMethodResolver
- 実装されたすべてのインターフェース:
MethodResolver
- 既知の直属サブクラス
DataBindingMethodResolver
明示的なメソッドリゾルバーが指定されていない限り、
StandardEvaluationContext
ではデフォルトでリフレクションベースの MethodResolver
が使用されます。- 導入:
- 3.0
- 作成者:
- Andy Clement, Juergen Hoeller, Chris Beams, Sam Brannen
- 関連事項:
コンストラクターのサマリー
コンストラクター説明ReflectiveMethodResolver
(boolean useDistance) このコンストラクターを使用すると、ReflectiveMethodResolver を構成して、距離計算を使用して、2 つの近い一致のどちらが優れているかを確認できます(複数の一致がある場合)。メソッドのサマリー
修飾子と型メソッド説明protected MethodSE[]
getMethods
(ClassSE<?> type) この型のメソッドのセットを返します。protected boolean
isCandidateForInvocation
(MethodSE method, ClassSE<?> targetClass) 指定されたMethod
が、指定されたターゲットクラスのインスタンスのメソッド解決の候補であるかどうかを判断します。void
registerMethodFilter
(ClassSE<?> type, MethodFilter filter) 指定された型のメソッドのフィルターを登録します。resolve
(EvaluationContext context, ObjectSE targetObject, StringSE name, ListSE<TypeDescriptor> argumentTypes) 型のメソッドを見つけます。
コンストラクターの詳細
ReflectiveMethodResolver
public ReflectiveMethodResolver()ReflectiveMethodResolver
public ReflectiveMethodResolver(boolean useDistance) このコンストラクターを使用すると、ReflectiveMethodResolver を構成して、距離計算を使用して、2 つの近い一致のどちらが優れているかを確認できます(複数の一致がある場合)。距離計算を使用することは、ボックス化 / ボックス化解除を考慮したときに Java コンパイラーが行うこと、および渡される型の(引数の)スーパー型を処理するようにメソッド候補が宣言されているかどうかを一致がより厳密に表すようにすることを目的としています。- パラメーター:
useDistance
- 一致を計算するときに距離計算を使用する必要がある場合はtrue
。それ以外の場合はfalse
メソッドの詳細
registerMethodFilter
指定された型のメソッドのフィルターを登録します。- パラメーター:
type
- フィルタリングする型filter
- 対応するメソッドフィルター、または指定された型のフィルターをクリアするnull
resolve
@Nullable public MethodExecutor resolve(EvaluationContext context, ObjectSE targetObject, StringSE name, ListSE<TypeDescriptor> argumentTypes) throws AccessException 型のメソッドを見つけます。発生する可能性のある 3 種類の一致があります。- 引数の型がコンストラクターの型と一致する完全一致
- 探している型がコンストラクターで定義されたもののサブ型である完全一致
- 登録された型コンバーターに従って、引数をコンストラクターが期待するものに変換できる一致
- 次で指定:
- インターフェース
MethodResolver
のresolve
- パラメーター:
context
- 現在の評価コンテキストtargetObject
- メソッドが呼び出されるオブジェクトargumentTypes
- コンストラクターが処理できる必要がある引数- 戻り値:
- メソッドを呼び出すことができる MethodExecutor、またはメソッドが見つからない場合は null
- 例外:
AccessException
getMethods
この型のメソッドのセットを返します。デフォルトの実装は、指定されたtype
のClass.getMethods()
の結果を返しますが、結果を変更するためにサブクラスがオーバーライドされる場合があります。他の場所で宣言された静的メソッドを指定します。- パラメーター:
type
- メソッドを返すクラス- 導入:
- 3.1.1
isCandidateForInvocation
指定されたMethod
が、指定されたターゲットクラスのインスタンスのメソッド解決の候補であるかどうかを判断します。デフォルトの実装では、
Object
SE 基本クラスの静的メソッドやユーザー宣言されていないメソッドであっても、すべてのメソッドが候補と見なされます。- パラメーター:
method
- 評価する方法targetClass
- イントロスペクトされている具体的なターゲットクラス- 導入:
- 4.3.15