## 类的使用
org.springframework.core.ResolvableType

- 使用ResolvableType的程序包
  程序包 | 说明
  --- | ---
  org.springframework.core | Provides basic classes for exception handling and version detection, and other core helpers that are not specific to any part of the framework.
  org.springframework.core.codec | `Encoder` and `Decoder` abstractions to convert between a reactive stream of bytes and Java objects.
  org.springframework.core.convert | Type conversion system API.

- - ### org.springframework.core中ResolvableType的使用

    声明为ResolvableType的org.springframework.core中的字段
    限定符和类型 | 字段和说明
    --- | ---
    `static ResolvableType` | ResolvableType.`NONE` `ResolvableType` returned when no value is available.

    返回ResolvableType的org.springframework.core中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `ResolvableType` | ResolvableType.`as(Class<?> type)` Return this type as a `ResolvableType` of the specified class.
    `ResolvableType` | ResolvableType.`asCollection()` Convenience method to return this type as a resolvable `Collection` type.
    `ResolvableType` | ResolvableType.`asMap()` Convenience method to return this type as a resolvable `Map` type.
    `static ResolvableType` | ResolvableType.`forArrayComponent(ResolvableType componentType)` Return a `ResolvableType` as a array of the specified `componentType`.
    `static ResolvableType` | ResolvableType.`forClass(Class<?> clazz)` Return a `ResolvableType` for the specified `Class`, using the full generic type information for assignability checks.
    `static ResolvableType` | ResolvableType.`forClass(Class<?> baseType, Class<?> implementationClass)` Return a `ResolvableType` for the specified base type (interface or base class) with a given implementation class.
    `static ResolvableType` | ResolvableType.`forClassWithGenerics(Class<?> clazz, Class<?>... generics)` Return a `ResolvableType` for the specified `Class` with pre-declared generics.
    `static ResolvableType` | ResolvableType.`forClassWithGenerics(Class<?> clazz, ResolvableType... generics)` Return a `ResolvableType` for the specified `Class` with pre-declared generics.
    `static ResolvableType` | ResolvableType.`forConstructorParameter(Constructor<?> constructor, int parameterIndex)` Return a `ResolvableType` for the specified `Constructor` parameter.
    `static ResolvableType` | ResolvableType.`forConstructorParameter(Constructor<?> constructor, int parameterIndex, Class<?> implementationClass)` Return a `ResolvableType` for the specified `Constructor` parameter with a given implementation.
    `static ResolvableType` | ResolvableType.`forField(Field field)` Return a `ResolvableType` for the specified `Field`.
    `static ResolvableType` | ResolvableType.`forField(Field field, Class<?> implementationClass)` Return a `ResolvableType` for the specified `Field` with a given implementation.
    `static ResolvableType` | ResolvableType.`forField(Field field, int nestingLevel)` Return a `ResolvableType` for the specified `Field` with the given nesting level.
    `static ResolvableType` | ResolvableType.`forField(Field field, int nestingLevel, Class<?> implementationClass)` Return a `ResolvableType` for the specified `Field` with a given implementation and the given nesting level.
    `static ResolvableType` | ResolvableType.`forField(Field field, ResolvableType implementationType)` Return a `ResolvableType` for the specified `Field` with a given implementation.
    `static ResolvableType` | ResolvableType.`forInstance(Object instance)` Return a `ResolvableType` for the specified instance.
    `static ResolvableType` | ResolvableType.`forMethodParameter(Method method, int parameterIndex)` Return a `ResolvableType` for the specified `Method` parameter.
    `static ResolvableType` | ResolvableType.`forMethodParameter(Method method, int parameterIndex, Class<?> implementationClass)` Return a `ResolvableType` for the specified `Method` parameter with a given implementation.
    `static ResolvableType` | ResolvableType.`forMethodParameter(MethodParameter methodParameter)` Return a `ResolvableType` for the specified `MethodParameter`.
    `static ResolvableType` | ResolvableType.`forMethodParameter(MethodParameter methodParameter, ResolvableType implementationType)` Return a `ResolvableType` for the specified `MethodParameter` with a given implementation type.
    `static ResolvableType` | ResolvableType.`forMethodParameter(MethodParameter methodParameter, Type targetType)` Return a `ResolvableType` for the specified `MethodParameter`, overriding the target type to resolve with a specific given type.
    `static ResolvableType` | ResolvableType.`forMethodReturnType(Method method)` Return a `ResolvableType` for the specified `Method` return type.
    `static ResolvableType` | ResolvableType.`forMethodReturnType(Method method, Class<?> implementationClass)` Return a `ResolvableType` for the specified `Method` return type.
    `static ResolvableType` | ResolvableType.`forRawClass(Class<?> clazz)` Return a `ResolvableType` for the specified `Class`, doing assignability checks against the raw class only (analogous to `Class.isAssignableFrom(java.lang.Class<?>)`, which this serves as a wrapper for.
    `static ResolvableType` | ResolvableType.`forType(ParameterizedTypeReference<?> typeReference)` Return a `ResolvableType` for the specified `ParameterizedTypeReference`.
    `static ResolvableType` | ResolvableType.`forType(Type type)` Return a `ResolvableType` for the specified `Type`.
    `static ResolvableType` | ResolvableType.`forType(Type type, ResolvableType owner)` Return a `ResolvableType` for the specified `Type` backed by the given owner type.
    `ResolvableType` | ResolvableType.`getComponentType()` Return the ResolvableType representing the component type of the array or `NONE` if this type does not represent an array.
    `ResolvableType` | ResolvableType.`getGeneric(int... indexes)` Return a `ResolvableType` representing the generic parameter for the given indexes.
    `ResolvableType[]` | ResolvableType.`getGenerics()` Return an array of `ResolvableType`s representing the generic parameters of this type.
    `ResolvableType[]` | ResolvableType.`getInterfaces()` Return a `ResolvableType` array representing the direct interfaces implemented by this type.
    `ResolvableType` | ResolvableType.`getNested(int nestingLevel)` Return a `ResolvableType` for the specified nesting level.
    `ResolvableType` | ResolvableType.`getNested(int nestingLevel, Map<Integer,Integer> typeIndexesPerLevel)` Return a `ResolvableType` for the specified nesting level.
    `ResolvableType` | ResolvableTypeProvider.`getResolvableType()` Return the `ResolvableType` describing this instance (or `null` if some sort of default should be applied instead).
    `ResolvableType` | ResolvableType.`getSuperType()` Return a `ResolvableType` representing the direct supertype of this type.

    参数类型为ResolvableType的org.springframework.core中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `static ResolvableType` | ResolvableType.`forArrayComponent(ResolvableType componentType)` Return a `ResolvableType` as a array of the specified `componentType`.
    `static ResolvableType` | ResolvableType.`forClassWithGenerics(Class<?> clazz, ResolvableType... generics)` Return a `ResolvableType` for the specified `Class` with pre-declared generics.
    `static ResolvableType` | ResolvableType.`forField(Field field, ResolvableType implementationType)` Return a `ResolvableType` for the specified `Field` with a given implementation.
    `static ResolvableType` | ResolvableType.`forMethodParameter(MethodParameter methodParameter, ResolvableType implementationType)` Return a `ResolvableType` for the specified `MethodParameter` with a given implementation type.
    `static ResolvableType` | ResolvableType.`forType(Type type, ResolvableType owner)` Return a `ResolvableType` for the specified `Type` backed by the given owner type.
    `boolean` | ResolvableType.`isAssignableFrom(ResolvableType other)` Determine whether this `ResolvableType` is assignable from the specified other type.

  - ### org.springframework.core.codec中ResolvableType的使用

    参数类型为ResolvableType的org.springframework.core.codec中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `boolean` | AbstractDecoder.`canDecode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | ByteArrayDecoder.`canDecode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | ByteBufferDecoder.`canDecode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | DataBufferDecoder.`canDecode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | Decoder.`canDecode(ResolvableType elementType, MimeType mimeType)` Whether the decoder supports the given target element type and the MIME type of the source stream.
    `boolean` | ResourceDecoder.`canDecode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | StringDecoder.`canDecode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | AbstractEncoder.`canEncode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | ByteArrayEncoder.`canEncode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | ByteBufferEncoder.`canEncode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | CharSequenceEncoder.`canEncode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | DataBufferEncoder.`canEncode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | Encoder.`canEncode(ResolvableType elementType, MimeType mimeType)` Whether the encoder supports the given source element type and the MIME type for the output stream.
    `boolean` | ResourceEncoder.`canEncode(ResolvableType elementType, MimeType mimeType)`
    `boolean` | ResourceRegionEncoder.`canEncode(ResolvableType elementType, MimeType mimeType)`
    `reactor.core.publisher.Flux<T>` | AbstractDataBufferDecoder.`decode(org.reactivestreams.Publisher<DataBuffer> inputStream, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Flux<DataBuffer>` | DataBufferDecoder.`decode(org.reactivestreams.Publisher<DataBuffer> inputStream, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Flux<T>` | Decoder.`decode(org.reactivestreams.Publisher<DataBuffer> inputStream, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)` Decode a `DataBuffer` input stream into a Flux of `T`.
    `reactor.core.publisher.Flux<Resource>` | ResourceDecoder.`decode(org.reactivestreams.Publisher<DataBuffer> inputStream, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Flux<String>` | StringDecoder.`decode(org.reactivestreams.Publisher<DataBuffer> inputStream, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `protected abstract T` | AbstractDataBufferDecoder.`decodeDataBuffer(DataBuffer buffer, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)` How to decode a `DataBuffer` to the target element type.
    `protected byte[]` | ByteArrayDecoder.`decodeDataBuffer(DataBuffer dataBuffer, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `protected ByteBuffer` | ByteBufferDecoder.`decodeDataBuffer(DataBuffer dataBuffer, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `protected DataBuffer` | DataBufferDecoder.`decodeDataBuffer(DataBuffer buffer, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `protected Resource` | ResourceDecoder.`decodeDataBuffer(DataBuffer dataBuffer, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `protected String` | StringDecoder.`decodeDataBuffer(DataBuffer dataBuffer, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Mono<T>` | AbstractDataBufferDecoder.`decodeToMono(org.reactivestreams.Publisher<DataBuffer> inputStream, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Mono<T>` | AbstractDecoder.`decodeToMono(org.reactivestreams.Publisher<DataBuffer> inputStream, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Mono<T>` | Decoder.`decodeToMono(org.reactivestreams.Publisher<DataBuffer> inputStream, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)` Decode a `DataBuffer` input stream into a Mono of `T`.
    `reactor.core.publisher.Flux<DataBuffer>` | ByteArrayEncoder.`encode(org.reactivestreams.Publisher<? extends byte[]> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Flux<DataBuffer>` | ByteBufferEncoder.`encode(org.reactivestreams.Publisher<? extends ByteBuffer> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Flux<DataBuffer>` | CharSequenceEncoder.`encode(org.reactivestreams.Publisher<? extends CharSequence> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Flux<DataBuffer>` | DataBufferEncoder.`encode(org.reactivestreams.Publisher<? extends DataBuffer> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Flux<DataBuffer>` | ResourceRegionEncoder.`encode(org.reactivestreams.Publisher<? extends ResourceRegion> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Flux<DataBuffer>` | AbstractSingleValueEncoder.`encode(org.reactivestreams.Publisher<? extends T> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)`
    `reactor.core.publisher.Flux<DataBuffer>` | Encoder.`encode(org.reactivestreams.Publisher<? extends T> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, MimeType mimeType, Map<String,Object> hints)` Encode a stream of Objects of type `T` into a `DataBuffer` output stream.
    `protected reactor.core.publisher.Flux<DataBuffer>` | ResourceEncoder.`encode(Resource resource, DataBufferFactory dataBufferFactory, ResolvableType type, MimeType mimeType, Map<String,Object> hints)`
    `protected abstract reactor.core.publisher.Flux<DataBuffer>` | AbstractSingleValueEncoder.`encode(T t, DataBufferFactory dataBufferFactory, ResolvableType type, MimeType mimeType, Map<String,Object> hints)` Encode `T` to an output `DataBuffer` stream.

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

    返回ResolvableType的org.springframework.core.convert中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `ResolvableType` | TypeDescriptor.`getResolvableType()` Return the underlying `ResolvableType`.

    参数类型为ResolvableType的org.springframework.core.convert中的构造器
    构造器和说明
    `TypeDescriptor(ResolvableType resolvableType, Class<?> type, Annotation[] annotations)` Create a new type descriptor from a `ResolvableType`.