org.springframework.core.ResolvableType.forType()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(8.3k)|赞(0)|评价(0)|浏览(138)

本文整理了Java中org.springframework.core.ResolvableType.forType方法的一些代码示例,展示了ResolvableType.forType的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ResolvableType.forType方法的具体详情如下:
包路径:org.springframework.core.ResolvableType
类名称:ResolvableType
方法名:forType

ResolvableType.forType介绍

[英]Return a ResolvableType for the specified Type.

Note: The resulting ResolvableType instance may not be Serializable.
[中]返回指定类型的可解析类型。
注意:生成的ResolvableType实例可能无法序列化。

代码示例

代码示例来源:origin: spring-projects/spring-framework

/**
 * Return a {@link ResolvableType} for the specified {@link Type}.
 * <p>Note: The resulting {@link ResolvableType} instance may not be {@link Serializable}.
 * @param type the source type (potentially {@code null})
 * @return a {@link ResolvableType} for the specified {@link Type}
 * @see #forType(Type, ResolvableType)
 */
public static ResolvableType forType(@Nullable Type type) {
  return forType(type, null, null);
}

代码示例来源:origin: spring-projects/spring-framework

@Override
@Nullable
public ResolvableType resolveVariable(TypeVariable<?> variable) {
  Type type = this.typeVariableMap.get(variable);
  return (type != null ? ResolvableType.forType(type) : null);
}

代码示例来源:origin: spring-projects/spring-framework

/**
 * Return a {@link ResolvableType} for the specified {@link Type} backed by a given
 * {@link VariableResolver}.
 * @param type the source type or {@code null}
 * @param variableResolver the variable resolver or {@code null}
 * @return a {@link ResolvableType} for the specified {@link Type} and {@link VariableResolver}
 */
static ResolvableType forType(@Nullable Type type, @Nullable VariableResolver variableResolver) {
  return forType(type, null, variableResolver);
}

代码示例来源:origin: spring-projects/spring-framework

/**
 * Return a {@link ResolvableType} for the specified {@link Field}.
 * @param field the source field
 * @return a {@link ResolvableType} for the specified field
 * @see #forField(Field, Class)
 */
public static ResolvableType forField(Field field) {
  Assert.notNull(field, "Field must not be null");
  return forType(null, new FieldTypeProvider(field), null);
}

代码示例来源:origin: spring-projects/spring-framework

/**
 * Return a {@link ResolvableType} for the specified {@link ParameterizedTypeReference}.
 * <p>Note: The resulting {@link ResolvableType} instance may not be {@link Serializable}.
 * @param typeReference the reference to obtain the source type from
 * @return a {@link ResolvableType} for the specified {@link ParameterizedTypeReference}
 * @since 4.3.12
 * @see #forType(Type)
 */
public static ResolvableType forType(ParameterizedTypeReference<?> typeReference) {
  return forType(typeReference.getType(), null, null);
}

代码示例来源:origin: spring-projects/spring-framework

public AsyncResultMethodParameter(@Nullable Object returnValue) {
  super(-1);
  this.returnValue = returnValue;
  this.returnType = ResolvableType.forType(super.getGenericParameterType()).getGeneric();
}

代码示例来源:origin: spring-projects/spring-framework

/**
 * Variant of {@link #toMono(Class)} for type information with generics.
 * @param typeRef the type reference for the type to decode to
 * @param <T> the element type to decode to
 * @return {@code BodyExtractor} for {@code Mono<T>}
 */
public static <T> BodyExtractor<Mono<T>, ReactiveHttpInputMessage> toMono(ParameterizedTypeReference<T> typeRef) {
  return toMono(ResolvableType.forType(typeRef.getType()));
}

代码示例来源:origin: spring-projects/spring-framework

/**
 * Variant of {@link #toFlux(Class)} for type information with generics.
 * @param typeRef the type reference for the type to decode to
 * @param <T> the element type to decode to
 * @return {@code BodyExtractor} for {@code Flux<T>}
 */
public static <T> BodyExtractor<Flux<T>, ReactiveHttpInputMessage> toFlux(ParameterizedTypeReference<T> typeRef) {
  return toFlux(ResolvableType.forType(typeRef.getType()));
}

代码示例来源:origin: spring-projects/spring-framework

/**
 * Return the generic type of the {@code returnType} (or of the nested type
 * if it is an {@link HttpEntity}).
 */
private Type getGenericType(MethodParameter returnType) {
  if (HttpEntity.class.isAssignableFrom(returnType.getParameterType())) {
    return ResolvableType.forType(returnType.getGenericParameterType()).getGeneric().getType();
  }
  else {
    return returnType.getGenericParameterType();
  }
}

代码示例来源:origin: spring-projects/spring-framework

/**
 * Resolve the top-level parameter type of the given {@code MethodParameter}.
 * @param methodParameter the method parameter to resolve
 * @since 4.1.9
 * @see MethodParameter#setParameterType
 */
static void resolveMethodParameter(MethodParameter methodParameter) {
  Assert.notNull(methodParameter, "MethodParameter must not be null");
  ResolvableType owner = forType(methodParameter.getContainingClass()).as(methodParameter.getDeclaringClass());
  methodParameter.setParameterType(
      forType(null, new MethodParameterTypeProvider(methodParameter), owner.asVariableResolver()).resolve());
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void resolveTypeVariableFromDeclaredParameterizedTypeReference() throws Exception {
  Type sourceType = Methods.class.getMethod("charSequenceReturn").getGenericReturnType();
  ResolvableType reflectiveType = ResolvableType.forType(sourceType);
  ResolvableType declaredType = ResolvableType.forType(new ParameterizedTypeReference<List<CharSequence>>() {});
  assertEquals(reflectiveType, declaredType);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void resolveTypeVariableFromType() throws Exception {
  Type sourceType = Methods.class.getMethod("typedReturn").getGenericReturnType();
  ResolvableType type = ResolvableType.forType(sourceType);
  assertThat(type.resolve(), nullValue());
  assertThat(type.getType().toString(), equalTo("T"));
}

代码示例来源:origin: spring-projects/spring-framework

@Test  // Demonstrates we cant inject that event because the listener has a raw type
public void genericListenerRawTypeTypeErasure() {
  GenericTestEvent<String> stringEvent = createGenericTestEvent("test");
  ResolvableType eventType = ResolvableType.forType(stringEvent.getClass());
  supportsEventType(true, RawApplicationListener.class, eventType);
}

代码示例来源:origin: spring-projects/spring-framework

@Test // Demonstrates it works if we actually use the subtype
public void genericListenerStrictTypeEventSubType() {
  StringEvent stringEvent = new StringEvent(this, "test");
  ResolvableType eventType = ResolvableType.forType(stringEvent.getClass());
  supportsEventType(true, StringEventListener.class, eventType);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void genericListenerStrictTypeEventSubTypeNotMatching() {
  LongEvent stringEvent = new LongEvent(this, 123L);
  ResolvableType eventType = ResolvableType.forType(stringEvent.getClass());
  supportsEventType(false, StringEventListener.class, eventType);
}

代码示例来源:origin: spring-projects/spring-framework

@Test  // Demonstrates we cant inject that event because the listener has a wildcard
public void genericListenerWildcardTypeTypeErasure() {
  GenericTestEvent<String> stringEvent = createGenericTestEvent("test");
  ResolvableType eventType = ResolvableType.forType(stringEvent.getClass());
  supportsEventType(true, GenericEventListener.class, eventType);
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void resolveTypeVariableFromReflectiveParameterizedTypeReference() throws Exception {
  Type sourceType = Methods.class.getMethod("typedReturn").getGenericReturnType();
  ResolvableType type = ResolvableType.forType(ParameterizedTypeReference.forType(sourceType));
  assertThat(type.resolve(), nullValue());
  assertThat(type.getType().toString(), equalTo("T"));
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void resolveTypeVariableFromTypeWithVariableResolver() throws Exception {
  Type sourceType = Methods.class.getMethod("typedReturn").getGenericReturnType();
  ResolvableType type = ResolvableType.forType(
      sourceType, ResolvableType.forClass(TypedMethods.class).as(Methods.class).asVariableResolver());
  assertThat(type.resolve(), equalTo((Class) String.class));
  assertThat(type.getType().toString(), equalTo("T"));
}

代码示例来源:origin: spring-projects/spring-framework

@Test
public void narrow() throws Exception {
  ResolvableType type = ResolvableType.forField(Fields.class.getField("stringList"));
  ResolvableType narrow = ResolvableType.forType(ArrayList.class, type);
  assertThat(narrow.getGeneric().resolve(), equalTo(String.class));
}

代码示例来源:origin: spring-projects/spring-framework

@Test // gh-22042
public void decodeWithNullLiteral() {
  Flux<Object> result = this.decoder.decode(Flux.concat(stringBuffer("null")),
      ResolvableType.forType(Pojo.class), MediaType.APPLICATION_JSON, Collections.emptyMap());
  StepVerifier.create(result).expectComplete().verify();
}

相关文章

微信公众号

最新文章

更多