org.springframework.core.convert

## Interface ConversionService

- All Known Subinterfaces:
    ConfigurableConversionService
  All Known Implementing Classes:
    DefaultConversionService, DefaultFormattingConversionService, FormattingConversionService, GenericConversionService

      public interface ConversionService

  A service interface for type conversion. This is the entry point into the convert system. Call `convert(Object, Class)` to perform a thread-safe type conversion using this system.
  Since:
    3.0
  Author:
    Keith Donald, Phillip Webb

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `canConvert(Class<?> sourceType, Class<?> targetType)` Return `true` if objects of `sourceType` can be converted to the `targetType`.
    `boolean` | `canConvert(TypeDescriptor sourceType, TypeDescriptor targetType)` Return `true` if objects of `sourceType` can be converted to the `targetType`.
    `<T> T` | `convert(Object source, Class<T> targetType)` Convert the given `source` to the specified `targetType`.
    `Object` | `convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType)` Convert the given `source` to the specified `targetType`.

- - ### Method Detail

    - #### canConvert

          boolean canConvert(Class<?> sourceType,
                           Class<?> targetType)

      Return `true` if objects of `sourceType` can be converted to the `targetType`.

      If this method returns `true`, it means `convert(Object, Class)` is capable of converting an instance of `sourceType` to `targetType`.

      Special note on collections, arrays, and maps types: For conversion between collection, array, and map types, this method will return `true` even though a convert invocation may still generate a `ConversionException` if the underlying elements are not convertible. Callers are expected to handle this exceptional case when working with collections and maps.

      Parameters:
        `sourceType` - the source type to convert from (may be `null` if source is `null`)
        `targetType` - the target type to convert to (required)
      Returns:
        `true` if a conversion can be performed, `false` if not
      Throws:
        `IllegalArgumentException` - if `targetType` is `null`

    - #### canConvert

          boolean canConvert(TypeDescriptor sourceType,
                           TypeDescriptor targetType)

      Return `true` if objects of `sourceType` can be converted to the `targetType`. The TypeDescriptors provide additional context about the source and target locations where conversion would occur, often object fields or property locations.

      If this method returns `true`, it means `convert(Object, TypeDescriptor, TypeDescriptor)` is capable of converting an instance of `sourceType` to `targetType`.

      Special note on collections, arrays, and maps types: For conversion between collection, array, and map types, this method will return `true` even though a convert invocation may still generate a `ConversionException` if the underlying elements are not convertible. Callers are expected to handle this exceptional case when working with collections and maps.

      Parameters:
        `sourceType` - context about the source type to convert from (may be `null` if source is `null`)
        `targetType` - context about the target type to convert to (required)
      Returns:
        `true` if a conversion can be performed between the source and target types, `false` if not
      Throws:
        `IllegalArgumentException` - if `targetType` is `null`

    - #### convert

          <T> T convert(Object source,
                      Class<T> targetType)

      Convert the given `source` to the specified `targetType`.
      Parameters:
        `source` - the source object to convert (may be null)
        `targetType` - the target type to convert to (required)
      Returns:
        the converted object, an instance of targetType
      Throws:
        `ConversionException` - if a conversion exception occurred
        `IllegalArgumentException` - if targetType is null

    - #### convert

          Object convert(Object source,
                       TypeDescriptor sourceType,
                       TypeDescriptor targetType)

      Convert the given `source` to the specified `targetType`. The TypeDescriptors provide additional context about the source and target locations where conversion will occur, often object fields or property locations.
      Parameters:
        `source` - the source object to convert (may be null)
        `sourceType` - context about the source type to convert from (may be `null` if source is `null`)
        `targetType` - context about the target type to convert to (required)
      Returns:
        the converted object, an instance of `targetType`
      Throws:
        `ConversionException` - if a conversion exception occurred
        `IllegalArgumentException` - if targetType is `null`, or `sourceType` is `null` but source is not `null`