通常,应用程序并不是必须定义annotation类型,但是定义annotation类型并非难事。Annotation类型声明于一般的接口声明极为类似,区别只在于它在interface关键字前面使用“@”符号。
annotation类型的每个方法声明定义了一个annotation类型成员,但方法声明不必有参数或者异常声明;方法返回值的类型被限制在以下的范围:primitives、String、Class、enums、annotation和前面类型的数组;方法可以有默认值。
下面是一个简单的annotation类型声明:
import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Column { boolean isKey() default false;//用于判定是否为数据库中的主键列 boolean canNull() default true;//用于插入时判定not null列是否有值 String value() default "[ColumnName]";//数据库中对应的列名 }