Package org.springframework.beans.support

# Class ArgumentConvertingMethodInvoker

java.lang.Object
org.springframework.util.MethodInvoker
org.springframework.beans.support.ArgumentConvertingMethodInvoker

Direct Known Subclasses:
  `MethodInvokingBean`

public class ArgumentConvertingMethodInvoker extends org.springframework.util.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.

Since:
  1.1
Author:
  Juergen Hoeller
See Also:
  - `AbstractNestablePropertyAccessor.convertIfNecessary(java.lang.String, java.lang.Object, java.lang.Object, java.lang.Class<?>, org.springframework.core.convert.TypeDescriptor)`

## Field Summary

### Fields inherited from class org.springframework.util.MethodInvoker

`targetClass`

## Constructor Summary

Constructors
Constructor
Description
`ArgumentConvertingMethodInvoker()`

## Method Summary

Modifier and Type
Method
Description
`protected Method`
`doFindMatchingMethod(Object[] arguments)`
Actually find a method with matching parameter type, i.e.
`protected Method`
`findMatchingMethod()`
This implementation looks for a method with matching parameter types.
`protected TypeConverter`
`getDefaultTypeConverter()`
Obtain the default TypeConverter for this method invoker.
`TypeConverter`
`getTypeConverter()`
Return the TypeConverter used for argument type conversion.
`void`
`registerCustomEditor(Class<?> requiredType, PropertyEditor propertyEditor)`
Register the given custom property editor for all properties of the given type.
`void`
`setTypeConverter(TypeConverter typeConverter)`
Set a TypeConverter to use for argument type conversion.

### Methods inherited from class org.springframework.util.MethodInvoker

`getArguments, getPreparedMethod, getTargetClass, getTargetMethod, getTargetObject, getTypeDifferenceWeight, invoke, isPrepared, prepare, resolveClassName, setArguments, setStaticMethod, setTargetClass, setTargetMethod, setTargetObject`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## 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:
  - `SimpleTypeConverter`
  - `BeanWrapperImpl`

### 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.

Parameters:
  `requiredType` - type of the property
  `propertyEditor` - editor to register
See Also:
  - `setTypeConverter(org.springframework.beans.TypeConverter)`
  - `PropertyEditorRegistry.registerCustomEditor(java.lang.Class<?>, java.beans.PropertyEditor)`

### findMatchingMethod

@Nullable protected Method findMatchingMethod()
This implementation looks for a method with matching parameter types.

Overrides:
  `findMatchingMethod` in class `org.springframework.util.MethodInvoker`
See Also:
  - `doFindMatchingMethod(java.lang.Object[])`

### 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.

Parameters:
  `arguments` - the argument values to match against method parameters
Returns:
  a matching method, or `null` if none