public enum AnnotationSearchMode extends Enum<AnnotationSearchMode>
用于从AnnotatedElement及其层级结构扫描注解的扫描模式封装
扫描模式按照对层级结构的扫描范围分为四类,每一类分别对应一个关键词:
SELF:只扫描元素本身;SUPERCLASS:扫描元素本身以及层级结构中的父类;INTERFACE:扫描元素本身以及层级结构中的接口;TYPE_HIERARCHY:扫描元素本身以及层级结构中的父类与父接口;扫描模式按照对注解的元注解结构的扫描范围分为两类,每一类分别对应一个关键词:
INDIRECT:从层级结构中扫描到注解后,还会继续扫描这些注解的元注解。DIRECT:从层级结构中扫描到注解后,不会继续扫描它们的元注解;com.sun,java.lang及javax包下的类的注解;Class、且Class.isAnnotation()返回true时,
必须选择INDIRECT类型的策略才会完整的扫描其层级结构中的元注解,
其余策略皆仅会扫描该注解类直接声明的元注解;
AbstractAnnotationScanner| 枚举常量和说明 |
|---|
INTERFACE_AND_DIRECT
扫描元素本身以及层级结构中的父接口声明的注解
|
INTERFACE_AND_INDIRECT
扫描元素本身以及层级结构中的父接口声明的注解,以及这些注解的元注解
|
SELF_AND_DIRECT
扫描元素本身直接声明的注解,包括父类带有
Inherited、被传递到元素上的注解 |
SELF_AND_INDIRECT
扫描元素本身直接声明的注解,包括父类带有
Inherited、被传递到元素上的注解,以及这些注解的元注解 |
SUPERCLASS_AND_DIRECT
扫描元素本身以及层级结构中的父类声明的注解
|
SUPERCLASS_AND_INDIRECT
扫描元素本身以及层级结构中的父类声明的注解,以及这些注解的元注解
|
TYPE_HIERARCHY_AND_DIRECT
扫描元素本身以及层级结构中的父类及父接口声明的注解
|
TYPE_HIERARCHY_AND_INDIRECT
扫描元素本身以及层级结构中的父类及父接口声明的注解,以及这些注解的元注解
|
| 限定符和类型 | 字段和说明 |
|---|---|
protected AbstractAnnotationScanner |
scanner
注解扫描器
|
| 限定符和类型 | 方法和说明 |
|---|---|
<T> T |
getAnnotation(AnnotatedElement element,
AnnotationFilter filter,
Predicate<T> predicate,
Function3<Integer,Integer,Annotation,T> converter)
从元素获取注解并将其转为指定类型对象,若符合条件则返回该指定类型对象
|
<T extends Annotation> |
getAnnotation(AnnotatedElement element,
Class<T> annotationType)
从元素获取类型注解
|
List<Annotation> |
getAnnotations(AnnotatedElement element,
AnnotationFilter filter)
从元素获取全部注解
|
<T> List<T> |
getAnnotations(AnnotatedElement element,
AnnotationFilter filter,
Function3<Integer,Integer,Annotation,T> converter)
从元素获取全部注解并将其转为指定类型
|
<T extends Annotation> |
getAnnotations(AnnotatedElement element,
Class<T> annotationType)
从元素获取指定类型的注解
|
ScanOptions |
getOptions()
获得与该策略一致的扫描器配置对象
|
boolean |
isAnnotationPresent(AnnotatedElement element,
Class<? extends Annotation> annotationType)
元素是否存在该类型的注解
|
void |
scan(AnnotatedElement element,
AnnotationProcessor processor,
AnnotationFilter filter)
扫描与指定元素具有关联的注解,并对其进行处理
|
static AnnotationSearchMode |
valueOf(String name)
返回带有指定名称的该类型的枚举常量。
|
static AnnotationSearchMode[] |
values()
按照声明该枚举类型的常量的顺序, 返回
包含这些常量的数组。
|
public static final AnnotationSearchMode SELF_AND_DIRECT
Inherited、被传递到元素上的注解public static final AnnotationSearchMode SELF_AND_INDIRECT
Inherited、被传递到元素上的注解,以及这些注解的元注解public static final AnnotationSearchMode SUPERCLASS_AND_DIRECT
public static final AnnotationSearchMode SUPERCLASS_AND_INDIRECT
public static final AnnotationSearchMode INTERFACE_AND_DIRECT
public static final AnnotationSearchMode INTERFACE_AND_INDIRECT
public static final AnnotationSearchMode TYPE_HIERARCHY_AND_DIRECT
public static final AnnotationSearchMode TYPE_HIERARCHY_AND_INDIRECT
protected final AbstractAnnotationScanner scanner
public static AnnotationSearchMode[] values()
for (AnnotationSearchMode c : AnnotationSearchMode.values()) System.out.println(c);
public static AnnotationSearchMode valueOf(String name)
name - 要返回的枚举常量的名称。IllegalArgumentException - 如果该枚举类型没有带有指定名称的常量NullPointerException - 如果参数为空值public ScanOptions getOptions()
public <T> List<T> getAnnotations(AnnotatedElement element, AnnotationFilter filter, Function3<Integer,Integer,Annotation,T> converter)
T - 转换类型element - 要扫描的元素filter - 注解过滤器converter - 转换器public List<Annotation> getAnnotations(AnnotatedElement element, AnnotationFilter filter)
element - 要扫描的元素filter - 注解过滤器public <T extends Annotation> List<T> getAnnotations(AnnotatedElement element, Class<T> annotationType)
element - 要扫描的元素annotationType - 注解类型public <T> T getAnnotation(AnnotatedElement element, AnnotationFilter filter, Predicate<T> predicate, Function3<Integer,Integer,Annotation,T> converter)
T - 转换类型element - 要扫描的元素filter - 注解过滤器predicate - 目标的判断条件converter - 转换器public <T extends Annotation> T getAnnotation(AnnotatedElement element, Class<T> annotationType)
T - 注解类型element - 要扫描的元素annotationType - 注解类型public boolean isAnnotationPresent(AnnotatedElement element, Class<? extends Annotation> annotationType)
element - 要扫描的元素annotationType - 注解类型public void scan(AnnotatedElement element, AnnotationProcessor processor, AnnotationFilter filter)
element - 要扫描的元素processor - 注解处理器filter - 过滤器Copyright © 2022. All rights reserved.