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 command using the specified arguments, and using the specified expression state.final Method
Return the original method that this executor has been configured for.Class<?>
Find the first public class in the methods 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 methods 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 walk up the type hierarchy to find the first public type that declares the method (if there is one!). For toString() it may walk 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 command using the specified arguments, and using the specified expression state.- Specified by:
execute
in interfaceMethodExecutor
- Parameters:
context
- the evaluation context in which the command is being executedtarget
- the target object of the call - null for static methodsarguments
- the arguments to the executor, should match (in terms of number and type) whatever the command will need to run- Returns:
- the value returned from execution
- Throws:
AccessException
- if there is a problem executing the command or the MethodExecutor is no longer valid
-