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

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

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

ResolvableType.as介绍

[英]Return this type as a ResolvableType of the specified class. Searches #getSuperType() and #getInterfaces()hierarchies to find a match, returning #NONE if this type does not implement or extend the specified class.
[中]将此类型作为指定类的可解析类型返回。搜索#getSuperType()和#getInterfaces()层次结构以查找匹配项,如果此类型未实现或扩展指定的类,则返回#NONE。

代码示例

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

/**
 * Convenience method to return this type as a resolvable {@link Collection} type.
 * Returns {@link #NONE} if this type does not implement or extend
 * {@link Collection}.
 * @see #as(Class)
 * @see #asMap()
 */
public ResolvableType asCollection() {
  return as(Collection.class);
}

代码示例来源: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

/**
 * Convenience method to return this type as a resolvable {@link Map} type.
 * Returns {@link #NONE} if this type does not implement or extend
 * {@link Map}.
 * @see #as(Class)
 * @see #asCollection()
 */
public ResolvableType asMap() {
  return as(Map.class);
}

代码示例来源: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

@Nullable
static ResolvableType resolveDeclaredEventType(Class<?> listenerType) {
  ResolvableType eventType = eventTypeCache.get(listenerType);
  if (eventType == null) {
    eventType = ResolvableType.forClass(listenerType).as(ApplicationListener.class).getGeneric();
    eventTypeCache.put(listenerType, eventType);
  }
  return (eventType != ResolvableType.NONE ? eventType : null);
}

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

@Nullable
private ResolvableType[] getRequiredTypeInfo(Class<?> converterClass, Class<?> genericIfc) {
  ResolvableType resolvableType = ResolvableType.forClass(converterClass).as(genericIfc);
  ResolvableType[] generics = resolvableType.getGenerics();
  if (generics.length < 2) {
    return null;
  }
  Class<?> sourceType = generics[0].resolve();
  Class<?> targetType = generics[1].resolve();
  if (sourceType == null || targetType == null) {
    return null;
  }
  return generics;
}

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

private Class<?> getPayloadType(MethodParameter parameter) {
  Type genericParamType = parameter.getGenericParameterType();
  ResolvableType resolvableType = ResolvableType.forType(genericParamType).as(Message.class);
  return resolvableType.getGeneric().toClass();
}

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

@Test
public void asSelf() throws Exception {
  ResolvableType type = ResolvableType.forClass(ExtendsList.class);
  assertThat(type.as(ExtendsList.class), equalTo(type));
}

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

@Test
public void doesResolveFromOuterOwner() throws Exception {
  ResolvableType type = ResolvableType.forField(
      Fields.class.getField("listOfListOfUnknown")).as(Collection.class);
  assertThat(type.getGeneric(0).resolve(), equalTo((Class) List.class));
  assertThat(type.getGeneric(0).as(Collection.class).getGeneric(0).as(Collection.class).resolve(), nullValue());
}

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

@Test
public void asFromInterface() throws Exception {
  ResolvableType type = ResolvableType.forClass(ExtendsList.class).as(List.class);
  assertThat(type.getType().toString(), equalTo("java.util.List<E>"));
}

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

@Test
public void asFromInheritedInterface() throws Exception {
  ResolvableType type = ResolvableType.forClass(ExtendsList.class).as(Collection.class);
  assertThat(type.getType().toString(), equalTo("java.util.Collection<E>"));
}

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

@Test
public void asFromSuperType() throws Exception {
  ResolvableType type = ResolvableType.forClass(ExtendsList.class).as(ArrayList.class);
  assertThat(type.getType().toString(), equalTo("java.util.ArrayList<java.lang.CharSequence>"));
}

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

@Test
public void asFromInheritedSuperType() throws Exception {
  ResolvableType type = ResolvableType.forClass(ExtendsList.class).as(List.class);
  assertThat(type.getType().toString(), equalTo("java.util.List<E>"));
}

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

@Test
public void resolveTypeVaraibleFromSimpleInterfaceType() {
  ResolvableType type = ResolvableType.forClass(
      MySimpleInterfaceType.class).as(MyInterfaceType.class);
  assertThat(type.resolveGeneric(), equalTo((Class) String.class));
}

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

@Test
public void resolveTypeVaraibleFromSimpleSuperclassType() {
  ResolvableType type = ResolvableType.forClass(
      MySimpleSuperclassType.class).as(MySuperclassType.class);
  assertThat(type.resolveGeneric(), equalTo((Class) String.class));
}

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

@Test
public void resolveTypeVaraibleFromSimpleCollectionInterfaceType() {
  ResolvableType type = ResolvableType.forClass(
      MyCollectionInterfaceType.class).as(MyInterfaceType.class);
  assertThat(type.resolveGeneric(), equalTo((Class) Collection.class));
  assertThat(type.resolveGeneric(0, 0), equalTo((Class) String.class));
}

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

@Test
public void resolveTypeVaraibleFromSimpleCollectionSuperclassType() {
  ResolvableType type = ResolvableType.forClass(
      MyCollectionSuperclassType.class).as(MySuperclassType.class);
  assertThat(type.resolveGeneric(), equalTo((Class) Collection.class));
  assertThat(type.resolveGeneric(0, 0), equalTo((Class) String.class));
}

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

@Test
public void asNotFound() throws Exception {
  ResolvableType type = ResolvableType.forClass(ExtendsList.class).as(Map.class);
  assertThat(type, sameInstance(ResolvableType.NONE));
}

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

@Test
public void resolveVariableFromInheritedFieldSwitched() throws Exception {
  ResolvableType type = ResolvableType.forField(
      Fields.class.getField("stringIntegerMultiValueMapSwitched")).as(Map.class);
  assertThat(type.getGeneric(0).resolve(), equalTo((Class) String.class));
  assertThat(type.getGeneric(1).resolve(), equalTo((Class) List.class));
  assertThat(type.getGeneric(1, 0).resolve(), equalTo((Class) Integer.class));
}

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

@Test
public void resolveVariableFromInheritedField() throws Exception {
  ResolvableType type = ResolvableType.forField(
      Fields.class.getField("stringIntegerMultiValueMap")).as(Map.class);
  assertThat(type.getGeneric(0).resolve(), equalTo((Class) String.class));
  assertThat(type.getGeneric(1).resolve(), equalTo((Class) List.class));
  assertThat(type.getGeneric(1, 0).resolve(), equalTo((Class) Integer.class));
}

相关文章

微信公众号

最新文章

更多