mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-05 21:28:00 +08:00
针对issue#I4WUWR初版修复
This commit is contained in:
parent
8dae97d691
commit
2cfb33af9e
@ -663,18 +663,35 @@ public class ReflectUtil {
|
|||||||
Assert.notNull(beanClass);
|
Assert.notNull(beanClass);
|
||||||
|
|
||||||
Method[] allMethods = null;
|
Method[] allMethods = null;
|
||||||
|
Class<?>[] searchInterfaces = null, parentInterfaces = null;
|
||||||
Class<?> searchType = beanClass;
|
Class<?> searchType = beanClass;
|
||||||
Method[] declaredMethods;
|
Method[] declaredMethods;
|
||||||
while (searchType != null) {
|
while (searchType != null || searchInterfaces != null) {
|
||||||
|
if (searchType != null) {
|
||||||
declaredMethods = searchType.getDeclaredMethods();
|
declaredMethods = searchType.getDeclaredMethods();
|
||||||
if (null == allMethods) {
|
if (null == allMethods) {
|
||||||
allMethods = declaredMethods;
|
allMethods = declaredMethods;
|
||||||
} else {
|
} else {
|
||||||
allMethods = ArrayUtil.append(allMethods, declaredMethods);
|
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;
|
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;
|
return allMethods;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user