自定义标记注解
定义新的注解类型使用 @ interface 关键字(在原有的 interface 关键字前增加 @ 符号)
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyTest {
}
自定义元数据注解
注解不仅可以是这种简单的注解,还可以带成员变量,成员变量在注解定义中以无形参的方法的形式来声明,其方法名和返回值定义了该成员变量的名字和类型。
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyTag {
String name();
int age();
}
一旦在注解里定义了成员变量之后,使用该注解时就应该为它的成员变量指定值。
public class Test {
@MyTag(name = "小牛", age = 16)
public void info() {
System.out.println();
}
}
也可以在定义注解的成员变量时为其指定初始值(默认值),指定成员变量的初始值可使用default关键字。
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface MyTag {
String name() default "小海";
int age() default 18;
}