Class ReflectiveMethodExecutor

java.lang.Object
org.springframework.expression.spel.support.ReflectiveMethodExecutor
All Implemented Interfaces:
MethodExecutor

public class ReflectiveMethodExecutor extends Object implements MethodExecutor
MethodExecutor that works via reflection.
Since:
3.0
Author:
Andy Clement, Juergen Hoeller
  • Constructor Details

    • ReflectiveMethodExecutor

      public ReflectiveMethodExecutor(Method method)
      Create a new executor for the given method.
      Parameters:
      method - the method to invoke
    • ReflectiveMethodExecutor

      public ReflectiveMethodExecutor(Method method, @Nullable Class<?> targetClass)
      Create a new executor for the given method.
      Parameters:
      method - the method to invoke
      targetClass - the target class to invoke the method on
      Since:
      5.3.16
  • Method Details

    • getMethod

      public final Method getMethod()
      Return the original method that this executor has been configured for.
    • getPublicDeclaringClass

      @Nullable public Class<?> 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). For toString(), 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 interface MethodExecutor
      Parameters:
      context - the evaluation context in which the method is being executed
      target - the target of the method invocation; may be null for static methods
      arguments - 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 this MethodExecutor has become stale