From fbc138f5d069fcbdbec8b53a2f4346b05d81133a Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 25 Feb 2020 09:43:16 +0100 Subject: [PATCH] DATACMNS-1673 - Polishing. Convert instance field to constant. Use parameter count for iteration instead of cloning the parameter array. Original pull request: #426. --- .../data/repository/query/Parameters.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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 b8b13a10b..7422df449 100644 --- a/src/main/java/org/springframework/data/repository/query/Parameters.java +++ b/src/main/java/org/springframework/data/repository/query/Parameters.java @@ -48,7 +48,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; @@ -65,18 +66,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);