diff --git a/src/main/java/org/springframework/data/repository/query/Parameters.java b/src/main/java/org/springframework/data/repository/query/Parameters.java index 55fb9e64d..8a2637f6f 100644 --- a/src/main/java/org/springframework/data/repository/query/Parameters.java +++ b/src/main/java/org/springframework/data/repository/query/Parameters.java @@ -47,7 +47,8 @@ public abstract class Parameters, T extends Parameter "Either use @%s on all parameters except %s and %s typed once, or none at all!", Param.class.getSimpleName(), Pageable.class.getSimpleName(), Sort.class.getSimpleName()); - private final ParameterNameDiscoverer discoverer = new DefaultParameterNameDiscoverer(); + private static final ParameterNameDiscoverer PARAMETER_NAME_DISCOVERER = new DefaultParameterNameDiscoverer(); + private final int pageableIndex; private final int sortIndex; private final List parameters; @@ -63,18 +64,18 @@ public abstract class Parameters, T extends Parameter Assert.notNull(method, "Method must not be null!"); - Class[] types = method.getParameterTypes(); + int parameterCount = method.getParameterCount(); - this.parameters = new ArrayList<>(types.length); + this.parameters = new ArrayList<>(parameterCount); this.dynamicProjectionIndex = -1; int pageableIndex = -1; int sortIndex = -1; - for (int i = 0; i < types.length; i++) { + for (int i = 0; i < parameterCount; i++) { MethodParameter methodParameter = new MethodParameter(method, i); - methodParameter.initParameterNameDiscovery(discoverer); + methodParameter.initParameterNameDiscovery(PARAMETER_NAME_DISCOVERER); T parameter = createParameter(methodParameter);