Define an Annotation (Annotation Type)
public @interface MyAnnotation {
String doSomething();
}
Example to Annotate Your Code (Annotation)
MyAnnotation (doSomething="What to do")
public void mymethod() {
....
}
Java Annotation Types
There are three annotation types:
Marker: Marker type annotations have no elements, except the annotation name itself.
Example:public @interface MyAnnotation {Usage:
}@MyAnnotation
public void mymethod() {
....
}- Single-Element: Single-element, or single-value type, annotations provide a single piece of data only. This can be represented with a data=value pair or, simply with the value (a shortcut syntax) only, within parenthesis.
Example:public @interface MyAnnotation
Usage:
{
String doSomething();
}@MyAnnotation ("What to do")
public void mymethod() {
....
} - Full-value or multi-value: Full-value type annotations have multiple data members. Therefore, you must use a full data=value parameter syntax for each member.
Example:public @interface MyAnnotation {Usage:
String doSomething();
int count; String date();
}@MyAnnotation (doSomething="What to do", count=1,
date="09-09-2005")
public void mymethod() {
....
}
Rules of Thumb for Defining Java Annotation Types
Here are some rules-of-thumb when defining an annotation type:
- Annotation declaration should start with an 'at' sign like @, following with an interface keyword, following with the annotation name.
- Method declarations should not have any parameters.
- Method declarations should not have any throws clauses.
- Return types of the method should be one of the following:
- primitives
- String
- Class
- enum
- array of the above types
Java Annotation Types
There are two types of annotations available with JDK5:
- Simple annotations: These are the basic types supplied with Tiger, which you can use to annotate your code only; you cannot use those to create a custom annotation type.
- Meta annotations: These are the annotation types designed for annotating annotation-type declarations. Simply speaking, these are called the annotations-of-annotations.
No comments:
Post a Comment