用法:提供了给注解中的属性定义别名的功能
1、让同一注解中的属性互为别名,
public @interface AliasFor {
@AliasFor("attribute")
String value() default "";
@AliasFor("value")
String attribute() default "";
Class<? extends Annotation> annotation() default Annotation.class;
}
效果:给value 赋值,会同时给attribute赋值;给attribute赋值,会同时给value赋值。
2、继承父注解的属性
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Inherited
@MyAnnotation
public @interface SubMyAnnotation {
@AliasFor(value="location",annotation=MyAnnotation.class)
String subLocation() default "";
@AliasFor(annotation=MyAnnotation.class) //缺省指明继承的父注解的中的属性名称,则默认继承父注解中同名的属性名
String value() default "";
}
若指定value,继承value指定的属性;若未指定value,继承同名属性。