自定义Annotation

来源:互联网 发布:珠海网络 编辑:程序博客网 时间:2024/06/04 19:41

java Annotation学习笔记

自定义Annotation

定义新的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。