Interface Synthetic

All Superinterfaces:
AnnotatedElement, Annotation
All Known Implementing Classes:
SyntheticMeta

public interface Synthetic extends Annotation, AnnotatedElement
表示基于特定规则聚合的一组注解对象

合成注解一般被用于处理类层级结果中具有直接或间接关联的注解对象, 当实例被创建时,会获取到这些注解对象,并使用SynthesizedSelector对类型相同的注解进行过滤, 并最终得到类型不重复的有效注解对象这些有效注解将被包装为Synthesized, 然后最终用于“合成”一个Synthesized

合成注解可以作为一个特殊的Annotation或者AnnotatedElement, 当调用Annotation的方法时,应当返回当前实例本身的有效信息, 而当调用AnnotatedElement的方法时,应当返回用于合成该对象的相关注解的信息

合成注解允许通过syntheticAnnotation(Class)合成一个指定的注解对象, 该方法返回的注解对象可能是原始的注解对象,也有可能通过动态代理的方式生成, 该对象实例的属性不一定来自对象本身,而是来自于经过SynthesizedProcessor 处理后的、用于合成当前实例的全部关联注解的相关属性

Since:
Java 17+
Author:
Kimi Liu