org.springframework.beans

## Interface TypeConverter

All Known Subinterfaces:
  BeanWrapper, ConfigurablePropertyAccessor

All Known Implementing Classes:
  AbstractPropertyAccessor, BeanWrapperImpl, DataBinder, DirectFieldAccessor, ExtendedServletRequestDataBinder, PortletRequestDataBinder, ServletRequestDataBinder, SimpleTypeConverter, TypeConverterSupport, WebDataBinder, WebRequestDataBinder

    public interface TypeConverter

Interface that defines type conversion methods. Typically (but not necessarily) implemented in conjunction with the `PropertyEditorRegistry` interface.

Note: Since TypeConverter implementations are typically based on `PropertyEditors` which aren't thread-safe, TypeConverters themselves are not to be considered as thread-safe either.

Since:
  2.0
Author:
  Juergen Hoeller
See Also:
  `SimpleTypeConverter`, `BeanWrapperImpl`

### Method Summary

Methods
`<T> T` `convertIfNecessary(Object value, Class<T> requiredType)` Convert the value to the required type (if necessary from a String).
`<T> T` `convertIfNecessary(Object value, Class<T> requiredType, Field field)` Convert the value to the required type (if necessary from a String).
`<T> T` `convertIfNecessary(Object value, Class<T> requiredType, MethodParameter methodParam)` Convert the value to the required type (if necessary from a String).

### Method Detail

#### convertIfNecessary

    <T> T convertIfNecessary(Object value,
                           Class<T> requiredType)
                         throws TypeMismatchException

Convert the value to the required type (if necessary from a String).

Conversions from String to any type will typically use the `setAsText` method of the PropertyEditor class, or a Spring Converter in a ConversionService.

Parameters:
  `value` - the value to convert
  `requiredType` - the type we must convert to (or `null` if not known, for example in case of a collection element)
Returns:
  the new value, possibly the result of type conversion
Throws:
  `TypeMismatchException` - if type conversion failed
See Also:
  `PropertyEditor.setAsText(String)`, `PropertyEditor.getValue()`, `ConversionService`, `Converter`

#### convertIfNecessary

    <T> T convertIfNecessary(Object value,
                           Class<T> requiredType,
                           MethodParameter methodParam)
                         throws TypeMismatchException

Convert the value to the required type (if necessary from a String).

Conversions from String to any type will typically use the `setAsText` method of the PropertyEditor class, or a Spring Converter in a ConversionService.

Parameters:
  `value` - the value to convert
  `requiredType` - the type we must convert to (or `null` if not known, for example in case of a collection element)
  `methodParam` - the method parameter that is the target of the conversion (for analysis of generic types; may be `null`)
Returns:
  the new value, possibly the result of type conversion
Throws:
  `TypeMismatchException` - if type conversion failed
See Also:
  `PropertyEditor.setAsText(String)`, `PropertyEditor.getValue()`, `ConversionService`, `Converter`

#### convertIfNecessary

    <T> T convertIfNecessary(Object value,
                           Class<T> requiredType,
                           Field field)
                         throws TypeMismatchException

Convert the value to the required type (if necessary from a String).

Conversions from String to any type will typically use the `setAsText` method of the PropertyEditor class, or a Spring Converter in a ConversionService.

Parameters:
  `value` - the value to convert
  `requiredType` - the type we must convert to (or `null` if not known, for example in case of a collection element)
  `field` - the reflective field that is the target of the conversion (for analysis of generic types; may be `null`)
Returns:
  the new value, possibly the result of type conversion
Throws:
  `TypeMismatchException` - if type conversion failed
See Also:
  `PropertyEditor.setAsText(String)`, `PropertyEditor.getValue()`, `ConversionService`, `Converter`