## 类的使用
org.springframework.core.convert.TypeDescriptor

- 使用TypeDescriptor的程序包
  程序包 | 说明
  --- | ---
  org.springframework.core.convert | Type conversion system API.
  org.springframework.core.convert.converter | SPI to implement Converters for the type conversion system.
  org.springframework.core.convert.support | Default implementation of the type conversion system.

- - ### org.springframework.core.convert中TypeDescriptor的使用

    返回TypeDescriptor的org.springframework.core.convert中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `static TypeDescriptor` | TypeDescriptor.`array(TypeDescriptor elementTypeDescriptor)` Create a new type descriptor as an array of the specified type.
    `static TypeDescriptor` | TypeDescriptor.`collection(Class<?> collectionType, TypeDescriptor elementTypeDescriptor)` Create a new type descriptor from a `Collection` type.
    `TypeDescriptor` | TypeDescriptor.`elementTypeDescriptor(Object element)` If this type is a `Collection` or an array, creates a element TypeDescriptor from the provided collection or array element.
    `static TypeDescriptor` | TypeDescriptor.`forObject(Object source)` Create a new type descriptor for an object.
    `TypeDescriptor` | TypeDescriptor.`getElementTypeDescriptor()` If this type is an array, returns the array's component type.
    `TypeDescriptor` | TypeDescriptor.`getMapKeyTypeDescriptor()` If this type is a `Map` and its key type is parameterized, returns the map's key type.
    `TypeDescriptor` | TypeDescriptor.`getMapKeyTypeDescriptor(Object mapKey)` If this type is a `Map`, creates a mapKey `TypeDescriptor` from the provided map key.
    `TypeDescriptor` | TypeDescriptor.`getMapValueTypeDescriptor()` If this type is a `Map` and its value type is parameterized, returns the map's value type.
    `TypeDescriptor` | TypeDescriptor.`getMapValueTypeDescriptor(Object mapValue)` If this type is a `Map`, creates a mapValue `TypeDescriptor` from the provided map value.
    `TypeDescriptor` | ConversionFailedException.`getSourceType()` Return the source type we tried to convert the value from.
    `TypeDescriptor` | ConverterNotFoundException.`getSourceType()` Return the source type that was requested to convert from.
    `TypeDescriptor` | ConversionFailedException.`getTargetType()` Return the target type we tried to convert the value to.
    `TypeDescriptor` | ConverterNotFoundException.`getTargetType()` Return the target type that was requested to convert to.
    `static TypeDescriptor` | TypeDescriptor.`map(Class<?> mapType, TypeDescriptor keyTypeDescriptor, TypeDescriptor valueTypeDescriptor)` Create a new type descriptor from a `Map` type.
    `TypeDescriptor` | TypeDescriptor.`narrow(Object value)` Narrows this `TypeDescriptor` by setting its type to the class of the provided value.
    `static TypeDescriptor` | TypeDescriptor.`nested(Field field, int nestingLevel)` Create a type descriptor for a nested type declared within the field.
    `static TypeDescriptor` | TypeDescriptor.`nested(MethodParameter methodParameter, int nestingLevel)` Create a type descriptor for a nested type declared within the method parameter.
    `static TypeDescriptor` | TypeDescriptor.`nested(Property property, int nestingLevel)` Create a type descriptor for a nested type declared within the property.
    `TypeDescriptor` | TypeDescriptor.`upcast(Class<?> superType)` Cast this `TypeDescriptor` to a superclass or implemented interface preserving annotations and nested type context.
    `static TypeDescriptor` | TypeDescriptor.`valueOf(Class<?> type)` Create a new type descriptor from the given type.

    参数类型为TypeDescriptor的org.springframework.core.convert中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `static TypeDescriptor` | TypeDescriptor.`array(TypeDescriptor elementTypeDescriptor)` Create a new type descriptor as an array of the specified type.
    `boolean` | ConversionService.`canConvert(TypeDescriptor sourceType, TypeDescriptor targetType)` Return `true` if objects of `sourceType` can be converted to the `targetType`.
    `static TypeDescriptor` | TypeDescriptor.`collection(Class<?> collectionType, TypeDescriptor elementTypeDescriptor)` Create a new type descriptor from a `Collection` type.
    `Object` | ConversionService.`convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType)` Convert the given `source` to the specified `targetType`.
    `boolean` | TypeDescriptor.`isAssignableTo(TypeDescriptor typeDescriptor)` Returns true if an object of this type descriptor can be assigned to the location described by the given type descriptor.
    `static TypeDescriptor` | TypeDescriptor.`map(Class<?> mapType, TypeDescriptor keyTypeDescriptor, TypeDescriptor valueTypeDescriptor)` Create a new type descriptor from a `Map` type.

    参数类型为TypeDescriptor的org.springframework.core.convert中的构造器
    构造器和说明
    `ConversionFailedException(TypeDescriptor sourceType, TypeDescriptor targetType, Object value, Throwable cause)` Create a new conversion exception.
    `ConverterNotFoundException(TypeDescriptor sourceType, TypeDescriptor targetType)` Create a new conversion executor not found exception.

  - ### org.springframework.core.convert.converter中TypeDescriptor的使用

    参数类型为TypeDescriptor的org.springframework.core.convert.converter中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `Object` | GenericConverter.`convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType)` Convert the source object to the targetType described by the `TypeDescriptor`.
    `boolean` | ConditionalConverter.`matches(TypeDescriptor sourceType, TypeDescriptor targetType)` Should the conversion from `sourceType` to `targetType` currently under consideration be selected?

  - ### org.springframework.core.convert.support中TypeDescriptor的使用

    参数类型为TypeDescriptor的org.springframework.core.convert.support中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `boolean` | GenericConversionService.`canBypassConvert(TypeDescriptor sourceType, TypeDescriptor targetType)` Return whether conversion between the source type and the target type can be bypassed.
    `boolean` | GenericConversionService.`canConvert(TypeDescriptor sourceType, TypeDescriptor targetType)`
    `Object` | GenericConversionService.`convert(Object source, TypeDescriptor targetType)` Convenience operation for converting a source object to the specified targetType, where the target type is a descriptor that provides additional conversion context.
    `Object` | GenericConversionService.`convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType)`
    `protected Object` | GenericConversionService.`convertNullSource(TypeDescriptor sourceType, TypeDescriptor targetType)` Template method to convert a `null` source.
    `protected GenericConverter` | GenericConversionService.`getConverter(TypeDescriptor sourceType, TypeDescriptor targetType)` Hook method to lookup the converter for a given sourceType/targetType pair.
    `protected GenericConverter` | GenericConversionService.`getDefaultConverter(TypeDescriptor sourceType, TypeDescriptor targetType)` Return the default converter if no converter is found for the given sourceType/targetType pair.

    参数类型为TypeDescriptor的org.springframework.core.convert.support中的构造器
    构造器和说明
    `ConvertingPropertyEditorAdapter(ConversionService conversionService, TypeDescriptor targetDescriptor)` Create a new ConvertingPropertyEditorAdapter for a given `ConversionService` and the given target type.