Typical application programmers will never have to define an annotation type, but it is not hard to do so. Annotation type declarations are similar to normal interface declarations. An at-sign (@
) precedes the interface
keyword. Each method declaration defines an element of the annotation type. Method declarations must not have any parameters or a throws
clause. Return types are restricted to primitives, String
, Class
, enums, annotations, and arrays of the preceding types. Methods can have default values. Here is an example annotation type declaration:
/*** Describes the Request-For-Enhancement(RFE) that led
* to the presence of the annotated API element.
*/
public @interface RequestForEnhancement {
int id();
String synopsis();
String engineer() default "[unassigned]