public class ReflectiveMethodResolver extends ObjectSE implements MethodResolver
StandardEvaluationContext
ではデフォルトでリフレクションベースの MethodResolver
が使用されます。StandardEvaluationContext.addMethodResolver(MethodResolver)
コンストラクターと説明 |
---|
ReflectiveMethodResolver() |
ReflectiveMethodResolver(boolean useDistance) このコンストラクターを使用すると、ReflectiveMethodResolver を構成して、距離計算を使用して、2 つの近い一致のどちらが優れているかを確認できます(複数の一致がある場合)。 |
修飾子と型 | メソッドと説明 |
---|---|
protected MethodSE[] | getMethods(ClassSE<?> type) この型のメソッドのセットを返します。 |
protected boolean | isCandidateForInvocation(MethodSE method, ClassSE<?> targetClass) 指定された Method が、指定されたターゲットクラスのインスタンスのメソッド解決の候補であるかどうかを判断します。 |
void | registerMethodFilter(ClassSE<?> type, MethodFilter filter) 指定された型のメソッドのフィルターを登録します。 |
MethodExecutor | resolve(EvaluationContext context, ObjectSE targetObject, StringSE name, ListSE<TypeDescriptor> argumentTypes) 型のメソッドを見つけます。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public ReflectiveMethodResolver()
public ReflectiveMethodResolver(boolean useDistance)
useDistance
- 一致を計算するときに距離計算を使用する必要がある場合は true
。それ以外の場合は false
public void registerMethodFilter(ClassSE<?> type, @Nullable MethodFilter filter)
type
- フィルタリングする型 filter
- 対応するメソッドフィルター、または指定された型のフィルターをクリアする null
@Nullable public MethodExecutor resolve(EvaluationContext context, ObjectSE targetObject, StringSE name, ListSE<TypeDescriptor> argumentTypes) throws AccessException
MethodResolver
の resolve
context
- 現在の評価コンテキスト targetObject
- メソッドが呼び出されるオブジェクト argumentTypes
- コンストラクターが処理できる必要がある引数 AccessException
protected MethodSE[] getMethods(ClassSE<?> type)
type
の Class.getMethods()
SE の結果を返しますが、結果を変更するためにサブクラスがオーバーライドされる場合があります。他の場所で宣言された静的メソッドを指定します。type
- メソッドを返すクラス protected boolean isCandidateForInvocation(MethodSE method, ClassSE<?> targetClass)
Method
が、指定されたターゲットクラスのインスタンスのメソッド解決の候補であるかどうかを判断します。 デフォルトの実装では、Object
SE 基本クラスの静的メソッドとユーザーが宣言していないメソッドの場合でも、すべてのメソッドが候補として考慮されます。
method
- 評価する方法 targetClass
- イントロスペクトされている具体的なターゲットクラス