Class ReflectiveMethodExecutor
java.lang.Object
org.springframework.expression.spel.support.ReflectiveMethodExecutor
- All Implemented Interfaces:
MethodExecutor
MethodExecutor
that works via reflection.- Since:
- 3.0
- Author:
- Andy Clement, Juergen Hoeller
-
Constructor Summary
ConstructorDescriptionReflectiveMethodExecutor
(Method method) Create a new executor for the given method.ReflectiveMethodExecutor
(Method method, Class<?> targetClass) Create a new executor for the given method. -
Method Summary
Modifier and TypeMethodDescriptionboolean
execute
(EvaluationContext context, Object target, Object... arguments) Execute a method in the specified context using the specified arguments.final Method
Return the original method that this executor has been configured for.Class<?>
Find the first public class in the method's declaring class hierarchy that declares this method.
-
Constructor Details
-
ReflectiveMethodExecutor
Create a new executor for the given method.- Parameters:
method
- the method to invoke
-
ReflectiveMethodExecutor
Create a new executor for the given method.- Parameters:
method
- the method to invoketargetClass
- the target class to invoke the method on- Since:
- 5.3.16
-
-
Method Details
-
getMethod
Return the original method that this executor has been configured for. -
getPublicDeclaringClass
Find the first public class in the method's declaring class hierarchy that declares this method.Sometimes the reflective method discovery logic finds a suitable method that can easily be called via reflection but cannot be called from generated code when compiling the expression because of visibility restrictions. For example, if a non-public class overrides
toString()
, this helper method will traverse up the type hierarchy to find the first public type that declares the method (if there is one). FortoString()
, it may traverse as far as Object. -
didArgumentConversionOccur
public boolean didArgumentConversionOccur() -
execute
public TypedValue execute(EvaluationContext context, Object target, Object... arguments) throws AccessException Description copied from interface:MethodExecutor
Execute a method in the specified context using the specified arguments.- Specified by:
execute
in interfaceMethodExecutor
- Parameters:
context
- the evaluation context in which the method is being executedtarget
- the target of the method invocation; may benull
forstatic
methodsarguments
- the arguments to the method; should match (in terms of number and type) whatever the method will need to run- Returns:
- the value returned from the method
- Throws:
AccessException
- if there is a problem executing the method or if thisMethodExecutor
has become stale
-