Usage
Once you have defined an annotation you can use it to mark different elements of your program.
@interface Even {
}
@interface NumberWrapper {
}
@NumberWrapper // Here @NumberWrapper is annotating the EvenNumber class
class EvenNumber {
final @Even int x; // And @Even is annotating the "x" field
EvenNumber(int x) {
if (x % 2 != 0) {
throw new IllegalArgumentException(Integer.toString(x));
}
this.x = x;
}
}
You can place an annotation on nearly any "structural" element of a program. This includes classes, method definitions, fields, and more.