All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.hutool.core.annotation.Link Maven / Gradle / Ivy

There is a newer version: 5.8.33
Show newest version
package cn.hutool.core.annotation;

import java.lang.annotation.*;

/**
 * 

用于在同一注解中,或具有一定关联的不同注解的属性中,表明这些属性之间具有特定的关联关系。 * 在通过{@link SynthesizedAggregateAnnotation}获取合成注解后,合成注解获取属性值时会根据该注解进行调整。
* *

该注解存在三个字注解:{@link MirrorFor}、{@link ForceAliasFor}或{@link AliasFor}, * 使用三个子注解等同于{@link Link}。但是需要注意的是, * 当注解中的属性同时存在多个{@link Link}或基于{@link Link}的子注解时, * 仅有声明在被注解的属性最上方的注解会生效,其余注解都将被忽略。 * * 注意:该注解的优先级低于{@link Alias} * * @author huangchengxing * @see SynthesizedAggregateAnnotation * @see RelationType * @see AliasFor * @see MirrorFor * @see ForceAliasFor */ @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE}) public @interface Link { /** * 产生关联的注解类型,当不指定时,默认指注释的属性所在的类 * * @return 关联的注解类型 */ Class annotation() default Annotation.class; /** * {@link #annotation()}指定注解中关联的属性 * * @return 属性名 */ String attribute() default ""; /** * {@link #attribute()}指定属性与当前注解的属性建的关联关系类型 * * @return 关系类型 */ RelationType type() default RelationType.MIRROR_FOR; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy