定义新的Annotation类型使用@interface关键字。定义一个新的Annotation类型与定义一个接口非常像。如下可定义一个简单的Annotation
Public@interface Test{
}
定义了Annotation后,就可以在程序的任何地方使用该Annotation,使用Annotation的语法非常像public,final这样的修饰符。默认情况下,Annotation可以修饰任何程序元素,包括类,接口,方法等。通常把Annotation另放一行。
Annotation还可以带成员变量,Annotation的成员变量在Annotation定义中以无参数方法的形式来声明。其方法名和返回值定义了该成员变量的名字和类型。
Public@interface MyTag
{
String name();
Int age();
}
一旦在Annotation里定义了成员变量以后,使用该Annotation时该为Annotation的成员变量指定值。
我们还可以在定义Annotation的成员变量时为其指定初试值,指定成员变量的初始值可以使用default关键字。
Public@interface MyTag
{
Stringname() default “yeeku”;
Intage() default 32;
}
如果为Annotation的成员变量指定了默认值,使用该Annotation则可以不为这些成员变量指定值,而是直接使用默认值。
当然我们也可以在使用MyTag Annotation时为其成员变量指定值,如果为MyTag的成员变量指定值,则默认值不会起作用。
根据Annotation是否可以包含成员变量,我们可以把Annotation分为如下两类:
1. 标记Annotation:一个没有定义成员变量的Annotation类型被成为标记。如@Override
2. 元数据Annotation: 那些包含成员变量的Annotation。