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

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `<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`