title: What do Java annotation ElementType constants mean?
body: <p><a href="http://download-llnw.oracle.com/javase/6/docs/api/java/lang/annotation/ElementType.html" rel="noreferrer"><code>java.lang.annotation.ElementType</code></a>:</p>
  
  <p>A program element type. The constants of this enumerated type provide a simple classification of the declared elements in a Java program. These constants are used with the <a href="http://download-llnw.oracle.com/javase/6/docs/api/java/lang/annotation/Target.html" rel="noreferrer"><code>Target</code></a> meta-annotation type to specify where it is legal to use an annotation type.</p>
  
  <p>There are the following constants:</p>
  
  <ul>
  <li><strong>ANNOTATION_TYPE</strong> - Annotation type declaration</li>
  <li><strong>CONSTRUCTOR</strong> - Constructor declaration</li>
  <li><strong>FIELD</strong> - Field declaration (includes enum constants)</li>
  <li><strong>LOCAL_VARIABLE</strong> - Local variable declaration</li>
  <li><strong>METHOD</strong> - Method declaration</li>
  <li><strong>PACKAGE</strong> - Package declaration</li>
  <li><strong>PARAMETER</strong> - Parameter declaration</li>
  <li><strong>TYPE</strong> - Class, interface (including annotation type), or enum declaration</li>
  </ul>
  
  <p>Can someone explain what each of them are (where they'd be annotated in actual code)?</p>