类 MethodIntrospector
- java.lang.Object
- org.springframework.core.MethodIntrospector
public final class MethodIntrospector extends Object
Defines the algorithm for searching for metadata-associated methods exhaustively including interfaces and parent classes while also dealing with parameterized methods as well as common scenarios encountered with interface and class-based proxies.Typically, but not necessarily, used for finding annotated handler methods.
- 从以下版本开始:
- 4.2.3
- 作者:
- Juergen Hoeller, Rossen Stoyanchev
嵌套类概要
嵌套类 修饰符和类型 类 说明 static interface
MethodIntrospector.MetadataLookup<T>
A callback interface for metadata lookup on a given method.
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static Method
selectInvocableMethod(Method method, Class<?> targetType)
Select an invocable method on the target type: either the given method itself if actually exposed on the target type, or otherwise a corresponding method on one of the target type's interfaces or on the target type itself.static <T> Map<Method,T>
selectMethods(Class<?> targetType, MethodIntrospector.MetadataLookup<T> metadataLookup)
Select methods on the given target type based on the lookup of associated metadata.static Set<Method>
selectMethods(Class<?> targetType, ReflectionUtils.MethodFilter methodFilter)
Select methods on the given target type based on a filter.
方法详细资料
selectMethods
public static <T> Map<Method,T> selectMethods(Class<?> targetType, MethodIntrospector.MetadataLookup<T> metadataLookup)
Select methods on the given target type based on the lookup of associated metadata.Callers define methods of interest through the
MethodIntrospector.MetadataLookup
parameter, allowing to collect the associated metadata into the result map.- 参数:
targetType
- the target type to search methods onmetadataLookup
- aMethodIntrospector.MetadataLookup
callback to inspect methods of interest, returning non-null metadata to be associated with a given method if there is a match, ornull
for no match- 返回:
- the selected methods associated with their metadata (in the order of retrieval), or an empty map in case of no match
selectMethods
public static Set<Method> selectMethods(Class<?> targetType, ReflectionUtils.MethodFilter methodFilter)
Select methods on the given target type based on a filter.Callers define methods of interest through the
MethodFilter
parameter.- 参数:
targetType
- the target type to search methods onmethodFilter
- aMethodFilter
to help recognize handler methods of interest- 返回:
- the selected methods, or an empty set in case of no match
selectInvocableMethod
public static Method selectInvocableMethod(Method method, Class<?> targetType)
Select an invocable method on the target type: either the given method itself if actually exposed on the target type, or otherwise a corresponding method on one of the target type's interfaces or on the target type itself.Matches on user-declared interfaces will be preferred since they are likely to contain relevant metadata that corresponds to the method on the target class.
- 参数:
method
- the method to checktargetType
- the target type to search methods on (typically an interface-based JDK proxy)- 返回:
- a corresponding invocable method on the target type
- 抛出:
IllegalStateException
- if the given method is not invocable on the given target type (typically due to a proxy mismatch)