From 8cf30150757bddea9fb2ead0aabcecd3a7790757 Mon Sep 17 00:00:00 2001 From: huangchengxing <841396397@qq.com> Date: Thu, 30 Jun 2022 15:34:16 +0800 Subject: [PATCH] fix comment --- .../core/annotation/AnnotationUtil.java | 4 +- .../AbstractTypeAnnotationScanner.java | 12 ++-- .../annotation/scanner/AnnotationScanner.java | 60 +++++++++---------- .../scanner/FieldAnnotationScanner.java | 16 ++--- .../scanner/MetaAnnotationScanner.java | 25 ++++---- .../scanner/MethodAnnotationScanner.java | 17 +++--- .../scanner/TypeAnnotationScanner.java | 20 +++---- 7 files changed, 75 insertions(+), 79 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/annotation/AnnotationUtil.java b/hutool-core/src/main/java/cn/hutool/core/annotation/AnnotationUtil.java index 14d160864..4c1bb3354 100755 --- a/hutool-core/src/main/java/cn/hutool/core/annotation/AnnotationUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/annotation/AnnotationUtil.java @@ -151,7 +151,7 @@ public class AnnotationUtil { */ public static Annotation[] getAnnotations(AnnotatedElement annotationEle, boolean isToCombination, Predicate predicate) { if (null == annotationEle) { - return null; + return new Annotation[0]; } if (isToCombination) { @@ -438,7 +438,7 @@ public class AnnotationUtil { } /** - * 方法是否为注解属性方法。
+ * 方法是否为注解属性方法。
* 方法无参数,且有返回值的方法认为是注解属性的方法。 * * @param method 方法 diff --git a/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/AbstractTypeAnnotationScanner.java b/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/AbstractTypeAnnotationScanner.java index 84559716e..28de9831a 100644 --- a/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/AbstractTypeAnnotationScanner.java +++ b/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/AbstractTypeAnnotationScanner.java @@ -159,14 +159,14 @@ public abstract class AbstractTypeAnnotationScanner consumer, AnnotatedElement annotatedElement, Predicate filter) { + public void scan(BiConsumer consumer, AnnotatedElement annotatedEle, Predicate filter) { filter = ObjectUtil.defaultIfNull(filter, annotation -> true); - final Class sourceClass = getClassFormAnnotatedElement(annotatedElement); + final Class sourceClass = getClassFormAnnotatedElement(annotatedEle); final Deque>> classDeque = CollUtil.newLinkedList(CollUtil.newArrayList(sourceClass)); final Set> accessedTypes = new LinkedHashSet<>(); int index = 0; @@ -185,7 +185,7 @@ public abstract class AbstractTypeAnnotationScanner getAnnotations(AnnotatedElement annotatedElement) { + default List getAnnotations(AnnotatedElement annotatedEle) { final List annotations = new ArrayList<>(); - scan((index, annotation) -> annotations.add(annotation), annotatedElement, null); + scan((index, annotation) -> annotations.add(annotation), annotatedEle, null); return annotations; } @@ -53,24 +53,24 @@ public interface AnnotationScanner { * 则调用并返回{@link #getAnnotations(AnnotatedElement)}结果, * 否则返回{@link Collections#emptyList()} * - * @param annotatedElement 注解元素 + * @param annotatedEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission * @return 注解 */ - default List getIfSupport(AnnotatedElement annotatedElement) { - return support(annotatedElement) ? getAnnotations(annotatedElement) : Collections.emptyList(); + default List getIfSupport(AnnotatedElement annotatedEle) { + return support(annotatedEle) ? getAnnotations(annotatedEle) : Collections.emptyList(); } /** * 扫描注解元素的层级结构(若存在),然后对获取到的注解和注解对应的层级索引进行处理。 * 调用该方法前,需要确保调用{@link #support(AnnotatedElement)}返回为true * - * @param consumer 对获取到的注解和注解对应的层级索引的处理 - * @param annotatedElement 注解元素 - * @param filter 注解过滤器,无法通过过滤器的注解不会被处理。该参数允许为空。 + * @param consumer 对获取到的注解和注解对应的层级索引的处理 + * @param annotatedEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission + * @param filter 注解过滤器,无法通过过滤器的注解不会被处理。该参数允许为空。 */ - default void scan(BiConsumer consumer, AnnotatedElement annotatedElement, Predicate filter) { + default void scan(BiConsumer consumer, AnnotatedElement annotatedEle, Predicate filter) { filter = ObjectUtil.defaultIfNull(filter, annotation -> true); - for (Annotation annotation : annotatedElement.getAnnotations()) { + for (Annotation annotation : annotatedEle.getAnnotations()) { if (AnnotationUtil.isNotJdkMateAnnotation(annotation.annotationType()) && filter.test(annotation)) { consumer.accept(0, annotation); } @@ -80,47 +80,47 @@ public interface AnnotationScanner { /** * 若{@link #support(AnnotatedElement)}返回{@code true},则调用{@link #scan(BiConsumer, AnnotatedElement, Predicate)} * - * @param consumer 对获取到的注解和注解对应的层级索引的处理 - * @param annotatedElement 注解元素 - * @param filter 注解过滤器,无法通过过滤器的注解不会被处理。该参数允许为空。 + * @param consumer 对获取到的注解和注解对应的层级索引的处理 + * @param annotatedEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission + * @param filter 注解过滤器,无法通过过滤器的注解不会被处理。该参数允许为空。 */ - default void scanIfSupport(BiConsumer consumer, AnnotatedElement annotatedElement, Predicate filter) { - if (support(annotatedElement)) { - scan(consumer, annotatedElement, filter); + default void scanIfSupport(BiConsumer consumer, AnnotatedElement annotatedEle, Predicate filter) { + if (support(annotatedEle)) { + scan(consumer, annotatedEle, filter); } } /** * 给定一组扫描器,使用第一个支持处理该类型元素的扫描器获取元素上可能存在的注解 * - * @param annotatedElement 注解元素 - * @param scanners 注解扫描器 + * @param annotatedEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission + * @param scanners 注解扫描器 * @return 注解 */ - static List scanByAnySupported(AnnotatedElement annotatedElement, AnnotationScanner... scanners) { - if (ObjectUtil.isNull(annotatedElement) && ArrayUtil.isNotEmpty(scanners)) { + static List scanByAnySupported(AnnotatedElement annotatedEle, AnnotationScanner... scanners) { + if (ObjectUtil.isNull(annotatedEle) && ArrayUtil.isNotEmpty(scanners)) { return Collections.emptyList(); } return Stream.of(scanners) - .filter(scanner -> scanner.support(annotatedElement)) + .filter(scanner -> scanner.support(annotatedEle)) .findFirst() - .map(scanner -> scanner.getAnnotations(annotatedElement)) + .map(scanner -> scanner.getAnnotations(annotatedEle)) .orElseGet(Collections::emptyList); } /** * 根据指定的扫描器,扫描元素上可能存在的注解 * - * @param annotatedElement 注解元素 - * @param scanners 注解扫描器 + * @param annotatedEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission + * @param scanners 注解扫描器 * @return 注解 */ - static List scanByAllScanner(AnnotatedElement annotatedElement, AnnotationScanner... scanners) { - if (ObjectUtil.isNull(annotatedElement) && ArrayUtil.isNotEmpty(scanners)) { + static List scanByAllScanner(AnnotatedElement annotatedEle, AnnotationScanner... scanners) { + if (ObjectUtil.isNull(annotatedEle) && ArrayUtil.isNotEmpty(scanners)) { return Collections.emptyList(); } return Stream.of(scanners) - .map(scanner -> scanner.getIfSupport(annotatedElement)) + .map(scanner -> scanner.getIfSupport(annotatedEle)) .flatMap(Collection::stream) .collect(Collectors.toList()); } diff --git a/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/FieldAnnotationScanner.java b/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/FieldAnnotationScanner.java index fcd4c45fe..413a49e3f 100644 --- a/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/FieldAnnotationScanner.java +++ b/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/FieldAnnotationScanner.java @@ -19,25 +19,25 @@ public class FieldAnnotationScanner implements AnnotationScanner { /** * 判断是否支持扫描该注解元素,仅当注解元素是{@link Field}时返回{@code true} * - * @param annotatedElement 注解元素 + * @param annotatedEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission * @return 是否支持扫描该注解元素 */ @Override - public boolean support(AnnotatedElement annotatedElement) { - return annotatedElement instanceof Field; + public boolean support(AnnotatedElement annotatedEle) { + return annotatedEle instanceof Field; } /** * 扫描{@link Field}上直接声明的注解,调用前需要确保调用{@link #support(AnnotatedElement)}返回为true * - * @param consumer 对获取到的注解和注解对应的层级索引的处理 - * @param annotatedElement 注解元素 - * @param filter 注解过滤器,无法通过过滤器的注解不会被处理。该参数允许为空。 + * @param consumer 对获取到的注解和注解对应的层级索引的处理 + * @param annotatedEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission + * @param filter 注解过滤器,无法通过过滤器的注解不会被处理。该参数允许为空。 */ @Override - public void scan(BiConsumer consumer, AnnotatedElement annotatedElement, Predicate filter) { + public void scan(BiConsumer consumer, AnnotatedElement annotatedEle, Predicate filter) { filter = ObjectUtil.defaultIfNull(filter, annotation -> true); - for (Annotation annotation : annotatedElement.getAnnotations()) { + for (Annotation annotation : annotatedEle.getAnnotations()) { if (AnnotationUtil.isNotJdkMateAnnotation(annotation.annotationType()) && filter.test(annotation)) { consumer.accept(0, annotation); } diff --git a/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/MetaAnnotationScanner.java b/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/MetaAnnotationScanner.java index 02b44b412..98cc08a0e 100644 --- a/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/MetaAnnotationScanner.java +++ b/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/MetaAnnotationScanner.java @@ -49,27 +49,26 @@ public class MetaAnnotationScanner implements AnnotationScanner { /** * 判断是否支持扫描该注解元素,仅当注解元素是{@link Annotation}接口的子类{@link Class}时返回{@code true} * - * @param annotatedElement 注解元素 + * @param annotatedEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission * @return 是否支持扫描该注解元素 */ @Override - public boolean support(AnnotatedElement annotatedElement) { - return (annotatedElement instanceof Class && ClassUtil.isAssignable(Annotation.class, (Class) annotatedElement)); + public boolean support(AnnotatedElement annotatedEle) { + return (annotatedEle instanceof Class && ClassUtil.isAssignable(Annotation.class, (Class)annotatedEle)); } /** * 获取注解元素上的全部注解。调用该方法前,需要确保调用{@link #support(AnnotatedElement)}返回为true * - * @param annotatedElement 注解元素 + * @param annotatedEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission * @return 注解 */ @Override - public List getAnnotations(AnnotatedElement annotatedElement) { + public List getAnnotations(AnnotatedElement annotatedEle) { final List annotations = new ArrayList<>(); scan( - (index, annotation) -> annotations.add(annotation), - annotatedElement, - annotation -> ObjectUtil.notEqual(annotation, annotatedElement) + (index, annotation) -> annotations.add(annotation), annotatedEle, + annotation -> ObjectUtil.notEqual(annotation, annotatedEle) ); return annotations; } @@ -77,15 +76,15 @@ public class MetaAnnotationScanner implements AnnotationScanner { /** * 按广度优先扫描指定注解上的元注解,对扫描到的注解与层级索引进行操作 * - * @param consumer 当前层级索引与操作 - * @param source 源注解 - * @param filter 过滤器 + * @param consumer 当前层级索引与操作 + * @param annotatedEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission + * @param filter 过滤器 */ @SuppressWarnings("unchecked") @Override - public void scan(BiConsumer consumer, AnnotatedElement source, Predicate filter) { + public void scan(BiConsumer consumer, AnnotatedElement annotatedEle, Predicate filter) { filter = ObjectUtil.defaultIfNull(filter, t -> true); - final Deque>> deque = CollUtil.newLinkedList(CollUtil.newArrayList((Class)source)); + final Deque>> deque = CollUtil.newLinkedList(CollUtil.newArrayList((Class)annotatedEle)); int distance = 0; do { final List> annotationTypes = deque.removeFirst(); diff --git a/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/MethodAnnotationScanner.java b/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/MethodAnnotationScanner.java index 67f847780..d55ff1c58 100644 --- a/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/MethodAnnotationScanner.java +++ b/hutool-core/src/main/java/cn/hutool/core/annotation/scanner/MethodAnnotationScanner.java @@ -49,21 +49,19 @@ public class MethodAnnotationScanner extends AbstractTypeAnnotationScanner - * @author huangchengxing - * @date 2022/6/29 17:21 + * @return 要递归的类型 * @see Method#getDeclaringClass() */ @Override @@ -74,9 +72,10 @@ public class MethodAnnotationScanner extends AbstractTypeAnnotationScanner targetClass) { @@ -92,7 +91,7 @@ public class MethodAnnotationScanner extends AbstractTypeAnnotationScanner getClassFormAnnotatedElement(AnnotatedElement annotatedElement) { - return (Class)annotatedElement; + protected Class getClassFormAnnotatedElement(AnnotatedElement annotatedEle) { + return (Class)annotatedEle; } /** @@ -73,7 +73,7 @@ public class TypeAnnotationScanner extends AbstractTypeAnnotationScanner> { @Override public Class apply(Class sourceClass) {