|
|
|
|
@ -133,6 +133,9 @@ public class ResolvableType implements Serializable {
@@ -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, |
|
|
|
|
@ -545,6 +548,15 @@ public class ResolvableType implements Serializable {
@@ -545,6 +548,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()) { |
|
|
|
|
|