Class ReflectiveMethodExecutor

All Implemented Interfaces:

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

    • ReflectiveMethodExecutor

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

      public ReflectiveMethodExecutor(Method method, @Nullable Class<?> targetClass)
      Create a new executor for the given method.
      method - the method to invoke
      targetClass - the target class to invoke the method on
  • 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 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 interface MethodExecutor
      context - the evaluation context in which the command is being executed
      target - the target object of the call - null for static methods
      arguments - the arguments to the executor, should match (in terms of number and type) whatever the command will need to run
      the value returned from execution
      AccessException - if there is a problem executing the command or the MethodExecutor is no longer valid