Class ArgumentConvertingMethodInvoker

Direct Known Subclasses:
MethodInvokingBean, MethodInvokingJobDetailFactoryBean, MethodInvokingRunnable

public class ArgumentConvertingMethodInvoker extends MethodInvoker
Subclass of MethodInvoker that tries to convert the given arguments for the actual target method via a TypeConverter.

Supports flexible argument conversions, in particular for invoking a specific overloaded method.

Juergen Hoeller
See Also:
  • AbstractNestablePropertyAccessor.convertIfNecessary(java.lang.String, java.lang.Object, java.lang.Object, java.lang.Class<?>, org.springframework.core.convert.TypeDescriptor)
  • Constructor Details

    • ArgumentConvertingMethodInvoker

      public ArgumentConvertingMethodInvoker()
  • Method Details

    • setTypeConverter

      public void setTypeConverter(@Nullable TypeConverter typeConverter)
      Set a TypeConverter to use for argument type conversion.

      Default is a SimpleTypeConverter. Can be overridden with any TypeConverter implementation, typically a pre-configured SimpleTypeConverter or a BeanWrapperImpl instance.

      See Also:
    • getTypeConverter

      @Nullable public TypeConverter getTypeConverter()
      Return the TypeConverter used for argument type conversion.

      Can be cast to PropertyEditorRegistry if direct access to the underlying PropertyEditors is desired (provided that the present TypeConverter actually implements the PropertyEditorRegistry interface).

    • getDefaultTypeConverter

      protected TypeConverter getDefaultTypeConverter()
      Obtain the default TypeConverter for this method invoker.

      Called if no explicit TypeConverter has been specified. The default implementation builds a SimpleTypeConverter. Can be overridden in subclasses.

    • registerCustomEditor

      public void registerCustomEditor(Class<?> requiredType, PropertyEditor propertyEditor)
      Register the given custom property editor for all properties of the given type.

      Typically used in conjunction with the default SimpleTypeConverter; will work with any TypeConverter that implements the PropertyEditorRegistry interface as well.

      requiredType - type of the property
      propertyEditor - editor to register
      See Also:
    • findMatchingMethod

      protected Method findMatchingMethod()
      This implementation looks for a method with matching parameter types.
      findMatchingMethod in class MethodInvoker
      a matching method, or null if none
      See Also:
    • doFindMatchingMethod

      @Nullable protected Method doFindMatchingMethod(Object[] arguments)
      Actually find a method with matching parameter type, i.e. where each argument value is assignable to the corresponding parameter type.
      arguments - the argument values to match against method parameters
      a matching method, or null if none