Meta Annotations @target, @Retention, @Documented, @Inherited
*
* @Target indicates where the annotation is used, the possible elemenettype parameters include:
* Elemenettype.constructor Constructor Declaration
* Elemenettype.field domain declarations (including enum instances)
* elemenettype.local_variable local variable declaration
* Elemenettype.method Method declaration
* Elemenettype.package Package Declaration
* Elemenettype.parameter Parameter declaration
* Elemenettype.type class, interface (including annotation type) or enum declaration
*
* @Retention indicates at what level the annotation information is saved. The optional retentionpolicy parameters include:
* Retentionpolicy.source annotations will be discarded by the compiler
* Retentionpolicy.class annotations are available in the CLASS file, but are discarded by the VM
* Retentionpolicy.runtime VMS will also retain annotations at run time, so you can read the information of annotations through the reflection mechanism.
*
* @Documented include this note in Javadoc
*
* @Inherited allow subclasses to inherit annotations from parent class
Java Meta annotations