Package org.springframework.beans

# Interface TypeConverter

All Known Subinterfaces:
  `BeanWrapper`, `ConfigurablePropertyAccessor`

All Known Implementing Classes:
  `AbstractNestablePropertyAccessor`, `AbstractPropertyAccessor`, `BeanWrapperImpl`, `DirectFieldAccessor`, `SimpleTypeConverter`, `TypeConverterSupport`

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

Modifier and Type
Method
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).
`default <T> T`
`convertIfNecessary(Object value, Class<T> requiredType, org.springframework.core.convert.TypeDescriptor typeDescriptor)`
Convert the value to the required type (if necessary from a String).
`<T> T`
`convertIfNecessary(Object value, Class<T> requiredType, org.springframework.core.MethodParameter methodParam)`
Convert the value to the required type (if necessary from a String).

## Method Details

### convertIfNecessary

@Nullable <T> T convertIfNecessary(@Nullable Object value, @Nullable 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

@Nullable <T> T convertIfNecessary(@Nullable Object value, @Nullable Class<T> requiredType, @Nullable org.springframework.core.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

@Nullable <T> T convertIfNecessary(@Nullable Object value, @Nullable Class<T> requiredType, @Nullable 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`

### convertIfNecessary

@Nullable default <T> T convertIfNecessary(@Nullable Object value, @Nullable Class<T> requiredType, @Nullable org.springframework.core.convert.TypeDescriptor typeDescriptor) 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)
  `typeDescriptor` - the type descriptor to use (may be `null`))
Returns:
  the new value, possibly the result of type conversion
Throws:
  `TypeMismatchException` - if type conversion failed
Since:
  5.1.4
See Also:
  - `PropertyEditor.setAsText(String)`
  - `PropertyEditor.getValue()`
  - `ConversionService`
  - `Converter`