title: Annotation SOURCE Retention Policy
body: <p>From the Java doc:</p>
  
  <p>CLASS:
      Annotations are to be recorded in the class file by the compiler but need not be retained by the VM at run time. </p>
  
  <p>RUNTIME:
      Annotations are to be recorded in the class file by the compiler and retained by the VM at run time, so they may be read reflectively. </p>
  
  <p>SOURCE:
      Annotations are to be discarded by the compiler.</p>
  
  <p>I understand the usages of RUNTIME (in order to use annotation with reflection) and CLASS (for the compiler) but I don't understand when it can be usefull to use    </p>
  
  <blockquote>
    <p>@Retention(RetentionPolicy.SOURCE)</p>
  </blockquote>
  
  <p>Can you explain?</p>