mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-05-02 20:09:31 +01:00
Cache hasUnresolvableGenerics result for repeated checks
Closes gh-30713
This commit is contained in:
@@ -133,6 +133,9 @@ public class ResolvableType implements Serializable {
|
||||
@Nullable
|
||||
private volatile ResolvableType[] generics;
|
||||
|
||||
@Nullable
|
||||
private volatile Boolean unresolvableGenerics;
|
||||
|
||||
|
||||
/**
|
||||
* Private constructor used to create a new {@link ResolvableType} for cache key purposes,
|
||||
@@ -544,6 +547,15 @@ public class ResolvableType implements Serializable {
|
||||
if (this == NONE) {
|
||||
return false;
|
||||
}
|
||||
Boolean unresolvableGenerics = this.unresolvableGenerics;
|
||||
if (unresolvableGenerics == null) {
|
||||
unresolvableGenerics = determineUnresolvableGenerics();
|
||||
this.unresolvableGenerics = unresolvableGenerics;
|
||||
}
|
||||
return unresolvableGenerics;
|
||||
}
|
||||
|
||||
private boolean determineUnresolvableGenerics() {
|
||||
ResolvableType[] generics = getGenerics();
|
||||
for (ResolvableType generic : generics) {
|
||||
if (generic.isUnresolvableTypeVariable() || generic.isWildcardWithoutBounds()) {
|
||||
|
||||
Reference in New Issue
Block a user