Support for ResolvableType.getType().getTypeName() on Java 8

Issue: SPR-16535

(cherry picked from commit 6663d0f)
This commit is contained in:
Juergen Hoeller
2018-02-26 17:19:12 +01:00
parent 0bc7c47bea
commit 901d48c803
2 changed files with 50 additions and 33 deletions

View File

@@ -34,6 +34,7 @@ import java.util.Map;
import org.springframework.core.SerializableTypeWrapper.FieldTypeProvider;
import org.springframework.core.SerializableTypeWrapper.MethodParameterTypeProvider;
import org.springframework.core.SerializableTypeWrapper.TypeProvider;
import org.springframework.lang.UsesJava8;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
import org.springframework.util.ConcurrentReferenceHashMap;
@@ -1454,6 +1455,23 @@ public class ResolvableType implements Serializable {
this.typeArguments = typeArguments;
}
@Override // on Java 8
@UsesJava8
public String getTypeName() {
StringBuilder result = new StringBuilder(this.rawType.getTypeName());
if (this.typeArguments.length > 0) {
result.append('<');
for (int i = 0; i < this.typeArguments.length; i++) {
if (i > 0) {
result.append(", ");
}
result.append(this.typeArguments[i].getTypeName());
}
result.append('>');
}
return result.toString();
}
@Override
public Type getOwnerType() {
return null;