org.springframework.core.convert.TypeDescriptor.elementTypeDescriptor()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(10.9k)|赞(0)|评价(0)|浏览(108)

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

TypeDescriptor.elementTypeDescriptor介绍

[英]If this type is a Collection or an array, creates a element TypeDescriptor from the provided collection or array element.

Narrows the #getElementTypeDescriptor() property to the class of the provided collection or array element. For example, if this describes a java.util.List<java.lang.Number< and the element argument is an java.lang.Integer, the returned TypeDescriptor will be java.lang.Integer. If this describes a java.util.List<?> and the element argument is an java.lang.Integer, the returned TypeDescriptor will be java.lang.Integeras well.

Annotation and nested type context will be preserved in the narrowed TypeDescriptor that is returned.
[中]如果此类型是集合或数组,则从提供的集合或数组元素创建元素TypeDescriptor。
将#getElementTypeDescriptor()属性缩小到提供的集合或数组元素的类。例如,如果这描述了一个java。util。列出java。lang.Number<元素参数是java。lang.Integer,返回的TypeDescriptor将是java。整型。如果这描述的是java。util。列表<?>元素参数是一个java。lang.Integer,返回的TypeDescriptor将是java。lang.Integeras很好。
注释和嵌套类型上下文将保留在返回的狭窄类型描述符中。

代码示例

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

@Override
public TypedValue getValue() {
  Object arrayElement = accessArrayElement(this.array, this.index);
  return new TypedValue(arrayElement, this.typeDescriptor.elementTypeDescriptor(arrayElement));
}

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

@Override
@Nullable
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  if (sourceType.isAssignableTo(targetType)) {
    return source;
  }
  Collection<?> sourceCollection = (Collection<?>) source;
  if (sourceCollection.isEmpty()) {
    return null;
  }
  Object firstElement = sourceCollection.iterator().next();
  return this.conversionService.convert(firstElement, sourceType.elementTypeDescriptor(firstElement), targetType);
}

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

@Override
@Nullable
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  if (sourceType.isAssignableTo(targetType)) {
    return source;
  }
  if (Array.getLength(source) == 0) {
    return null;
  }
  Object firstElement = Array.get(source, 0);
  return this.conversionService.convert(firstElement, sourceType.elementTypeDescriptor(firstElement), targetType);
}

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

@Override
@Nullable
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  Collection<?> sourceCollection = (Collection<?>) source;
  if (sourceCollection.isEmpty()) {
    return "";
  }
  StringBuilder sb = new StringBuilder();
  int i = 0;
  for (Object sourceElement : sourceCollection) {
    if (i > 0) {
      sb.append(DELIMITER);
    }
    Object targetElement = this.conversionService.convert(
        sourceElement, sourceType.elementTypeDescriptor(sourceElement), targetType);
    sb.append(targetElement);
    i++;
  }
  return sb.toString();
}

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

@Override
@Nullable
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  Collection<?> sourceCollection = (Collection<?>) source;
  TypeDescriptor targetElementType = targetType.getElementTypeDescriptor();
  Assert.state(targetElementType != null, "No target element type");
  Object array = Array.newInstance(targetElementType.getType(), sourceCollection.size());
  int i = 0;
  for (Object sourceElement : sourceCollection) {
    Object targetElement = this.conversionService.convert(sourceElement,
        sourceType.elementTypeDescriptor(sourceElement), targetElementType);
    Array.set(array, i++, targetElement);
  }
  return array;
}

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

@Override
public TypedValue getValue() {
  growCollectionIfNecessary();
  if (this.collection instanceof List) {
    Object o = ((List) this.collection).get(this.index);
    exitTypeDescriptor = CodeFlow.toDescriptor(Object.class);
    return new TypedValue(o, this.collectionEntryDescriptor.elementTypeDescriptor(o));
  }
  int pos = 0;
  for (Object o : this.collection) {
    if (pos == this.index) {
      return new TypedValue(o, this.collectionEntryDescriptor.elementTypeDescriptor(o));
    }
    pos++;
  }
  throw new IllegalStateException("Failed to find indexed element " + this.index + ": " + this.collection);
}

代码示例来源:origin: org.springframework/spring-expression

@Override
public TypedValue getValue() {
  Object arrayElement = accessArrayElement(this.array, this.index);
  return new TypedValue(arrayElement, this.typeDescriptor.elementTypeDescriptor(arrayElement));
}

代码示例来源:origin: org.springframework.boot/spring-boot

private String convertElement(Object element, TypeDescriptor sourceType,
    TypeDescriptor targetType) {
  return String.valueOf(this.conversionService.convert(element,
      sourceType.elementTypeDescriptor(element), targetType));
}

代码示例来源:origin: org.springframework/spring-core

@Override
@Nullable
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  if (sourceType.isAssignableTo(targetType)) {
    return source;
  }
  Collection<?> sourceCollection = (Collection<?>) source;
  if (sourceCollection.isEmpty()) {
    return null;
  }
  Object firstElement = sourceCollection.iterator().next();
  return this.conversionService.convert(firstElement, sourceType.elementTypeDescriptor(firstElement), targetType);
}

代码示例来源:origin: org.springframework/spring-core

@Override
@Nullable
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  if (sourceType.isAssignableTo(targetType)) {
    return source;
  }
  if (Array.getLength(source) == 0) {
    return null;
  }
  Object firstElement = Array.get(source, 0);
  return this.conversionService.convert(firstElement, sourceType.elementTypeDescriptor(firstElement), targetType);
}

代码示例来源:origin: org.springframework/spring-core

@Override
@Nullable
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  Collection<?> sourceCollection = (Collection<?>) source;
  if (sourceCollection.isEmpty()) {
    return "";
  }
  StringBuilder sb = new StringBuilder();
  int i = 0;
  for (Object sourceElement : sourceCollection) {
    if (i > 0) {
      sb.append(DELIMITER);
    }
    Object targetElement = this.conversionService.convert(
        sourceElement, sourceType.elementTypeDescriptor(sourceElement), targetType);
    sb.append(targetElement);
    i++;
  }
  return sb.toString();
}

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

@Override
@Nullable
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  int length = Array.getLength(source);
  TypeDescriptor elementDesc = targetType.getElementTypeDescriptor();
  Collection<Object> target = CollectionFactory.createCollection(targetType.getType(),
      (elementDesc != null ? elementDesc.getType() : null), length);
  if (elementDesc == null) {
    for (int i = 0; i < length; i++) {
      Object sourceElement = Array.get(source, i);
      target.add(sourceElement);
    }
  }
  else {
    for (int i = 0; i < length; i++) {
      Object sourceElement = Array.get(source, i);
      Object targetElement = this.conversionService.convert(sourceElement,
          sourceType.elementTypeDescriptor(sourceElement), elementDesc);
      target.add(targetElement);
    }
  }
  return target;
}

代码示例来源:origin: org.springframework/spring-core

@Override
@Nullable
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  Collection<?> sourceCollection = (Collection<?>) source;
  TypeDescriptor targetElementType = targetType.getElementTypeDescriptor();
  Assert.state(targetElementType != null, "No target element type");
  Object array = Array.newInstance(targetElementType.getType(), sourceCollection.size());
  int i = 0;
  for (Object sourceElement : sourceCollection) {
    Object targetElement = this.conversionService.convert(sourceElement,
        sourceType.elementTypeDescriptor(sourceElement), targetElementType);
    Array.set(array, i++, targetElement);
  }
  return array;
}

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

for (Object sourceElement : sourceCollection) {
  Object targetElement = this.conversionService.convert(sourceElement,
      sourceType.elementTypeDescriptor(sourceElement), elementDesc);
  target.add(targetElement);
  if (sourceElement != targetElement) {

代码示例来源:origin: org.springframework/spring-expression

@Override
public TypedValue getValue() {
  growCollectionIfNecessary();
  if (this.collection instanceof List) {
    Object o = ((List) this.collection).get(this.index);
    exitTypeDescriptor = CodeFlow.toDescriptor(Object.class);
    return new TypedValue(o, this.collectionEntryDescriptor.elementTypeDescriptor(o));
  }
  int pos = 0;
  for (Object o : this.collection) {
    if (pos == this.index) {
      return new TypedValue(o, this.collectionEntryDescriptor.elementTypeDescriptor(o));
    }
    pos++;
  }
  throw new IllegalStateException("Failed to find indexed element " + this.index + ": " + this.collection);
}

代码示例来源:origin: org.springframework/spring-core

@Override
@Nullable
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  int length = Array.getLength(source);
  TypeDescriptor elementDesc = targetType.getElementTypeDescriptor();
  Collection<Object> target = CollectionFactory.createCollection(targetType.getType(),
      (elementDesc != null ? elementDesc.getType() : null), length);
  if (elementDesc == null) {
    for (int i = 0; i < length; i++) {
      Object sourceElement = Array.get(source, i);
      target.add(sourceElement);
    }
  }
  else {
    for (int i = 0; i < length; i++) {
      Object sourceElement = Array.get(source, i);
      Object targetElement = this.conversionService.convert(sourceElement,
          sourceType.elementTypeDescriptor(sourceElement), elementDesc);
      target.add(targetElement);
    }
  }
  return target;
}

代码示例来源:origin: org.springframework/spring-core

for (Object sourceElement : sourceCollection) {
  Object targetElement = this.conversionService.convert(sourceElement,
      sourceType.elementTypeDescriptor(sourceElement), elementDesc);
  target.add(targetElement);
  if (sourceElement != targetElement) {

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

@Test
public void elementType() {
  TypeDescriptor desc = TypeDescriptor.valueOf(List.class);
  Integer value = Integer.valueOf(3);
  desc = desc.elementTypeDescriptor(value);
  assertEquals(Integer.class, desc.getType());
}

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

@Test
public void elementTypePreserveContext() throws Exception {
  TypeDescriptor desc = new TypeDescriptor(getClass().getField("listPreserveContext"));
  assertEquals(Integer.class, desc.getElementTypeDescriptor().getElementTypeDescriptor().getType());
  List<Integer> value = new ArrayList<>(3);
  desc = desc.elementTypeDescriptor(value);
  assertEquals(Integer.class, desc.getElementTypeDescriptor().getType());
  assertNotNull(desc.getAnnotation(FieldAnnotation.class));
}

代码示例来源:origin: camunda/camunda-bpm-platform

public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
  if (source == null) {
    return null;
  }
  if (sourceType.isAssignableTo(targetType)) {
    return source;
  }
  if (Array.getLength(source) == 0) {
    return null;
  }
  Object firstElement = Array.get(source, 0);
  return this.conversionService.convert(firstElement, sourceType.elementTypeDescriptor(firstElement), targetType);
}

相关文章

微信公众号

最新文章

更多