diff --git a/spring-core/src/main/java/org/springframework/core/ResolvableType.java b/spring-core/src/main/java/org/springframework/core/ResolvableType.java index 83b00f96753b..8276a41d31c0 100644 --- a/spring-core/src/main/java/org/springframework/core/ResolvableType.java +++ b/spring-core/src/main/java/org/springframework/core/ResolvableType.java @@ -935,7 +935,7 @@ VariableResolver asVariableResolver() { if (this == NONE) { return null; } - return new DefaultVariableResolver(); + return new DefaultVariableResolver(this); } /** @@ -1452,17 +1452,23 @@ interface VariableResolver extends Serializable { @SuppressWarnings("serial") - private class DefaultVariableResolver implements VariableResolver { + private static class DefaultVariableResolver implements VariableResolver { + + private final ResolvableType source; + + DefaultVariableResolver(ResolvableType resolvableType) { + this.source = resolvableType; + } @Override @Nullable public ResolvableType resolveVariable(TypeVariable variable) { - return ResolvableType.this.resolveVariable(variable); + return this.source.resolveVariable(variable); } @Override public Object getSource() { - return ResolvableType.this; + return this.source; } }