针对issue#I4WUWR初版修复

This commit is contained in:
jiazhengquan 2022-03-08 18:01:07 +08:00
parent 8dae97d691
commit 2cfb33af9e

View File

@ -663,18 +663,35 @@ public class ReflectUtil {
Assert.notNull(beanClass);
Method[] allMethods = null;
Class<?>[] searchInterfaces = null, parentInterfaces = null;
Class<?> searchType = beanClass;
Method[] declaredMethods;
while (searchType != null) {
while (searchType != null || searchInterfaces != null) {
if (searchType != null) {
declaredMethods = searchType.getDeclaredMethods();
if (null == allMethods) {
allMethods = declaredMethods;
} else {
allMethods = ArrayUtil.append(allMethods, declaredMethods);
}
Class<?>[] interfaces = searchType.getInterfaces();
for (Class<?> element : interfaces) {
allMethods = ArrayUtil.append(allMethods, element.getDeclaredMethods());
parentInterfaces = ArrayUtil.addAll(element.getInterfaces());
}
searchInterfaces = parentInterfaces;
Class<?>[] classes = searchInterfaces.length == 0 ? null : searchInterfaces;
searchInterfaces = withSuperClassMethods ? classes : null;
searchType = withSuperClassMethods ? searchType.getSuperclass() : null;
}
if (searchInterfaces != null) {
for (Class<?> searchInterface : searchInterfaces) {
allMethods = ArrayUtil.append(allMethods, searchInterface.getDeclaredMethods());
parentInterfaces = ArrayUtil.addAll(searchInterface.getInterfaces());
}
searchInterfaces = parentInterfaces.length == 0 ? null : parentInterfaces;
}
}
return allMethods;
}