Package | Description |
---|---|
cn.hutool.core.annotation |
注解包,提供增强型注解和注解工具类
|
Modifier and Type | Class and Description |
---|---|
interface |
AliasFor
Link 的子注解。表示“原始属性”将作为“关联属性”的别名。
当“原始属性”为默认值时,获取“关联属性”将返回“关联属性”本身的值;
当“原始属性”不为默认值时,获取“关联属性”将返回“原始属性”的值;
注意,该注解与Link 、ForceAliasFor 或MirrorFor 一起使用时,将只有被声明在最上面的注解会生效 |
interface |
ForceAliasFor
|
interface |
MirrorFor
Link 的子注解。表示注解的属性与指定的属性互为镜像,通过一个属性将能够获得对方的值。它们遵循下述规则: 互为镜像的两个属性,必须同时通过指定模式为 MIRROR_FOR 的Link 注解指定对方;
互为镜像的两个属性,类型必须一致;
互为镜像的两个属性在获取值,且两者的值皆不同时,必须且仅允许有一个非默认值,该值被优先返回;
互为镜像的两个属性,在值都为默认值或都不为默认值时,两者的值必须相等;
注意,该注解与Link 、ForceAliasFor 或AliasFor 一起使用时,将只有被声明在最上面的注解会生效 |
Modifier and Type | Method and Description |
---|---|
protected Link |
AbstractLinkAnnotationPostProcessor.getLinkAnnotation(AnnotationAttribute attribute,
RelationType... relationTypes)
从注解属性上获取指定类型的
Link 注解 |
Modifier and Type | Method and Description |
---|---|
protected void |
AbstractLinkAnnotationPostProcessor.checkLinkedAttributeNotNull(AnnotationAttribute original,
AnnotationAttribute linkedAttribute,
Link annotation)
检查
Link 指向的注解属性是否存在 |
protected SynthesizedAnnotation |
AbstractLinkAnnotationPostProcessor.getLinkedAnnotation(Link annotation,
AnnotationSynthesizer synthesizer,
Class<? extends Annotation> defaultType)
从合成注解中获取
type() 指定的注解对象 |
protected Class<?> |
AbstractLinkAnnotationPostProcessor.getLinkedAnnotationType(Link annotation,
Class<?> defaultType)
|
protected void |
AliasLinkAnnotationPostProcessor.processLinkedAttribute(AnnotationSynthesizer synthesizer,
Link annotation,
SynthesizedAnnotation originalAnnotation,
AnnotationAttribute originalAttribute,
SynthesizedAnnotation linkedAnnotation,
AnnotationAttribute linkedAttribute)
获取
Link 指向的目标注解属性,并根据type() 的类型是
RelationType.ALIAS_FOR 或RelationType.FORCE_ALIAS_FOR
将目标注解属性包装为AliasedAnnotationAttribute 或ForceAliasedAnnotationAttribute ,
然后用包装后注解属性在对应的合成注解中替换原始的目标注解属性 |
protected abstract void |
AbstractLinkAnnotationPostProcessor.processLinkedAttribute(AnnotationSynthesizer synthesizer,
Link annotation,
SynthesizedAnnotation originalAnnotation,
AnnotationAttribute originalAttribute,
SynthesizedAnnotation linkedAnnotation,
AnnotationAttribute linkedAttribute)
对关联的合成注解对象及其关联属性的处理
|
protected void |
MirrorLinkAnnotationPostProcessor.processLinkedAttribute(AnnotationSynthesizer synthesizer,
Link annotation,
SynthesizedAnnotation originalAnnotation,
AnnotationAttribute originalAttribute,
SynthesizedAnnotation linkedAnnotation,
AnnotationAttribute linkedAttribute)
将存在镜像关系的合成注解属性分别包装为
MirroredAnnotationAttribute 对象,
并使用包装后MirroredAnnotationAttribute 替换在它们对应合成注解实例中的AnnotationAttribute |
Copyright © 2024. All rights reserved.