Polishing

This commit is contained in:
Juergen Hoeller
2019-11-07 22:08:29 +01:00
parent f5ae3c77c6
commit 6a48bb7b4d
3 changed files with 14 additions and 21 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -66,8 +66,7 @@ abstract class PropertyDescriptorUtils {
Class<?> propertyType = null;
if (readMethod != null) {
int parameterCount = readMethod.getParameterCount();
if (parameterCount != 0) {
if (readMethod.getParameterCount() != 0) {
throw new IntrospectionException("Bad read method arg count: " + readMethod);
}
propertyType = readMethod.getReturnType();

View File

@@ -342,22 +342,20 @@ class ConstructorResolver {
if (uniqueCandidate == null) {
uniqueCandidate = candidate;
}
else {
boolean paramsNotMatch = isParamsNotMatch(uniqueCandidate, candidate);
if (paramsNotMatch) {
uniqueCandidate = null;
break;
}
else if (isParamMismatch(uniqueCandidate, candidate)) {
uniqueCandidate = null;
break;
}
}
}
mbd.factoryMethodToIntrospect = uniqueCandidate;
}
private boolean isParamsNotMatch(Method uniqueCandidate, Method candidate) {
private boolean isParamMismatch(Method uniqueCandidate, Method candidate) {
int uniqueCandidateParameterCount = uniqueCandidate.getParameterCount();
int candidateParameterCount = candidate.getParameterCount();
return uniqueCandidateParameterCount != candidateParameterCount || !Arrays.equals(uniqueCandidate.getParameterTypes(), candidate.getParameterTypes());
return (uniqueCandidateParameterCount != candidateParameterCount ||
!Arrays.equals(uniqueCandidate.getParameterTypes(), candidate.getParameterTypes()));
}
/**

View File

@@ -235,12 +235,10 @@ public abstract class ReflectionUtils {
Assert.notNull(name, "Method name must not be null");
Class<?> searchType = clazz;
while (searchType != null) {
Method[] methods = searchType.isInterface() ?
searchType.getMethods() :
getDeclaredMethods(searchType, false);
Method[] methods = (searchType.isInterface() ? searchType.getMethods() :
getDeclaredMethods(searchType, false));
for (Method method : methods) {
if (name.equals(method.getName()) &&
(paramTypes == null || hasSameParams(method, paramTypes))) {
if (name.equals(method.getName()) && (paramTypes == null || hasSameParams(method, paramTypes))) {
return method;
}
}
@@ -249,11 +247,9 @@ public abstract class ReflectionUtils {
return null;
}
private static boolean hasSameParams(Method method, @Nullable Class<?>[] paramTypes) {
if (paramTypes.length != method.getParameterCount()) {
return false;
}
return Arrays.equals(paramTypes, method.getParameterTypes());
private static boolean hasSameParams(Method method, Class<?>[] paramTypes) {
return (paramTypes.length == method.getParameterCount() &&
Arrays.equals(paramTypes, method.getParameterTypes()));
}
/**