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 Details

    • 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.

      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(@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.

      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

      @Nullable <T> T convert(@Nullable 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

      @Nullable default Object convert(@Nullable Object source, TypeDescriptor targetType)
      Convert the given source to the specified targetType.

      Delegates to convert(Object, TypeDescriptor, TypeDescriptor) and encapsulates the construction of the source type descriptor using TypeDescriptor.forObject(Object).

      Parameters:
      source - the source object
      targetType - the target type
      Returns:
      the converted value
      Throws:
      ConversionException - if a conversion exception occurred
      IllegalArgumentException - if targetType is null
      Since:
      6.1
    • 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.
      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