public interface AnnotationScanner
注解扫描器,用于从支持的可注解元素上获取所需注解
默认提供了以下扫描方式:
NOTHING:什么都不做,什么注解都不扫描;DIRECTLY:扫描元素本身直接声明的注解,包括父类带有Inherited、被传递到元素上的注解;DIRECTLY_AND_META_ANNOTATION:扫描元素本身直接声明的注解,包括父类带有Inherited、被传递到元素上的注解,
以及这些注解的元注解;
SUPERCLASS:扫描元素本身以及父类的层级结构中声明的注解;SUPERCLASS_AND_META_ANNOTATION:扫描元素本身以及父类的层级结构中声明的注解,以及这些注解的元注解;INTERFACE:扫描元素本身以及父接口的层级结构中声明的注解;INTERFACE_AND_META_ANNOTATION:扫描元素本身以及父接口的层级结构中声明的注解,以及这些注解的元注解;TYPE_HIERARCHY:扫描元素本身以及父类、父接口的层级结构中声明的注解;TYPE_HIERARCHY_AND_META_ANNOTATION:扫描元素本身以及父接口、父接口的层级结构中声明的注解,以及这些注解的元注解;TypeAnnotationScanner,
MethodAnnotationScanner,
FieldAnnotationScanner,
MetaAnnotationScanner,
ElementAnnotationScanner,
GenericAnnotationScanner| 限定符和类型 | 字段和说明 |
|---|---|
static AnnotationScanner |
DIRECTLY
扫描元素本身直接声明的注解,包括父类带有
Inherited、被传递到元素上的注解的扫描器 |
static AnnotationScanner |
DIRECTLY_AND_META_ANNOTATION
扫描元素本身直接声明的注解,包括父类带有
Inherited、被传递到元素上的注解,以及这些注解的元注解的扫描器 |
static AnnotationScanner |
INTERFACE
扫描元素本身以及父接口的层级结构中声明的注解的扫描器
|
static AnnotationScanner |
INTERFACE_AND_META_ANNOTATION
扫描元素本身以及父接口的层级结构中声明的注解,以及这些注解的元注解的扫描器
|
static AnnotationScanner |
NOTHING
不扫描任何注解
|
static AnnotationScanner |
SUPERCLASS
扫描元素本身以及父类的层级结构中声明的注解的扫描器
|
static AnnotationScanner |
SUPERCLASS_AND_META_ANNOTATION
扫描元素本身以及父类的层级结构中声明的注解,以及这些注解的元注解的扫描器
|
static AnnotationScanner |
TYPE_HIERARCHY
扫描元素本身以及父类、父接口的层级结构中声明的注解的扫描器
|
static AnnotationScanner |
TYPE_HIERARCHY_AND_META_ANNOTATION
扫描元素本身以及父接口、父接口的层级结构中声明的注解,以及这些注解的元注解的扫描器
|
| 限定符和类型 | 方法和说明 |
|---|---|
default List<Annotation> |
getAnnotations(AnnotatedElement annotatedEle)
获取注解元素上的全部注解。
|
default List<Annotation> |
getAnnotationsIfSupport(AnnotatedElement annotatedEle)
若
support(AnnotatedElement)返回true,
则调用并返回getAnnotations(AnnotatedElement)结果,
否则返回Collections.emptyList() |
default void |
scan(BiConsumer<Integer,Annotation> consumer,
AnnotatedElement annotatedEle,
Predicate<Annotation> filter)
扫描注解元素的层级结构(若存在),然后对获取到的注解和注解对应的层级索引进行处理。
|
static List<Annotation> |
scanByAllSupported(AnnotatedElement annotatedEle,
AnnotationScanner... scanners)
根据指定的扫描器,扫描元素上可能存在的注解
|
static List<Annotation> |
scanByAnySupported(AnnotatedElement annotatedEle,
AnnotationScanner... scanners)
给定一组扫描器,使用第一个支持处理该类型元素的扫描器获取元素上可能存在的注解
|
default void |
scanIfSupport(BiConsumer<Integer,Annotation> consumer,
AnnotatedElement annotatedEle,
Predicate<Annotation> filter)
|
default boolean |
support(AnnotatedElement annotatedEle)
判断是否支持扫描该注解元素
|
static final AnnotationScanner NOTHING
static final AnnotationScanner DIRECTLY
Inherited、被传递到元素上的注解的扫描器static final AnnotationScanner DIRECTLY_AND_META_ANNOTATION
Inherited、被传递到元素上的注解,以及这些注解的元注解的扫描器static final AnnotationScanner SUPERCLASS
static final AnnotationScanner SUPERCLASS_AND_META_ANNOTATION
static final AnnotationScanner INTERFACE
static final AnnotationScanner INTERFACE_AND_META_ANNOTATION
static final AnnotationScanner TYPE_HIERARCHY
static final AnnotationScanner TYPE_HIERARCHY_AND_META_ANNOTATION
static List<Annotation> scanByAnySupported(AnnotatedElement annotatedEle, AnnotationScanner... scanners)
annotatedEle - AnnotatedElement,可以是Class、Method、Field、Constructor、ReflectPermissionscanners - 注解扫描器static List<Annotation> scanByAllSupported(AnnotatedElement annotatedEle, AnnotationScanner... scanners)
annotatedEle - AnnotatedElement,可以是Class、Method、Field、Constructor、ReflectPermissionscanners - 注解扫描器default boolean support(AnnotatedElement annotatedEle)
annotatedEle - AnnotatedElement,可以是Class、Method、Field、Constructor、ReflectPermissiondefault List<Annotation> getAnnotations(AnnotatedElement annotatedEle)
support(AnnotatedElement)返回为trueannotatedEle - AnnotatedElement,可以是Class、Method、Field、Constructor、ReflectPermissiondefault List<Annotation> getAnnotationsIfSupport(AnnotatedElement annotatedEle)
support(AnnotatedElement)返回true,
则调用并返回getAnnotations(AnnotatedElement)结果,
否则返回Collections.emptyList()annotatedEle - AnnotatedElement,可以是Class、Method、Field、Constructor、ReflectPermissiondefault void scan(BiConsumer<Integer,Annotation> consumer, AnnotatedElement annotatedEle, Predicate<Annotation> filter)
support(AnnotatedElement)返回为trueconsumer - 对获取到的注解和注解对应的层级索引的处理annotatedEle - AnnotatedElement,可以是Class、Method、Field、Constructor、ReflectPermissionfilter - 注解过滤器,无法通过过滤器的注解不会被处理。该参数允许为空。default void scanIfSupport(BiConsumer<Integer,Annotation> consumer, AnnotatedElement annotatedEle, Predicate<Annotation> filter)
consumer - 对获取到的注解和注解对应的层级索引的处理annotatedEle - AnnotatedElement,可以是Class、Method、Field、Constructor、ReflectPermissionfilter - 注解过滤器,无法通过过滤器的注解不会被处理。该参数允许为空。Copyright © 2022. All rights reserved.