org.springframework.core.convert

## 接口 ConversionService

- 所有已知子接口:
    ConfigurableConversionService
  所有已知实现类:
    DefaultConversionService, 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.
  从以下版本开始:
    3.0
  作者:
    Keith Donald, Phillip Webb

- - ### 方法概要

    所有方法 实例方法 抽象方法
    限定符和类型 | 方法和说明
    --- | ---
    `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`.

- - ### 方法详细资料

    - #### canConvert

          boolean canConvert(@Nullable
                             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.

      参数:
        `sourceType` - the source type to convert from (may be `null` if source is `null`)
        `targetType` - the target type to convert to (required)
      返回:
        `true` if a conversion can be performed, `false` if not
      抛出:
        `IllegalArgumentException` - if `targetType` is `null`

    - #### canConvert

          boolean canConvert(@Nullable
                             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.

      参数:
        `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)
      返回:
        `true` if a conversion can be performed between the source and target types, `false` if not
      抛出:
        `IllegalArgumentException` - if `targetType` is `null`

    - #### convert

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

      Convert the given `source` to the specified `targetType`.
      参数:
        `source` - the source object to convert (may be `null`)
        `targetType` - the target type to convert to (required)
      返回:
        the converted object, an instance of targetType
      抛出:
        `ConversionException` - if a conversion exception occurred
        `IllegalArgumentException` - if targetType is `null`

    - #### convert

          @Nullable
          Object convert(@Nullable
                                    Object source,
                                    @Nullable
                                    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.
      参数:
        `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)
      返回:
        the converted object, an instance of `targetType`
      抛出:
        `ConversionException` - if a conversion exception occurred
        `IllegalArgumentException` - if targetType is `null`, or `sourceType` is `null` but source is not `null`