title: How to access Annotation defined on case class field at Runtime
body: <p>I've the following java Annotation defined  </p>
  
  <pre><code>   @Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.FIELD})
     @Retention(RetentionPolicy.RUNTIME)
     public @interface MyAnnotation { 
       String value() default "";
     }
  </code></pre>
  
  <p>And I've the following scala case class defined:</p>
  
  <pre><code>@Prefer("xyz")
  case class TestAnno(arg1 : String, @Prefer("abc") agr2 : String)
  </code></pre>
  
  <p>I'm able see the annotation defined at case class level using reflection but I'm not able to access the annotation defined for <code>arg2</code> member of case class <code>TestAnno</code>. De-compiling the code I see that neither the variable declaration or it's scala accessor seem to have the annotation. Only the constructor definition and <code>copy</code> method seem to retain the annotation for the parameters as defined in case class declaration. </p>
  
  <p>Is there some other way to force the scala compiler to generate annotations for the fields declared in case class or I have to read the constructor and use a library such as <a href="http://asm.ow2.org/" rel="noreferrer">ASM ByteCode Library</a> or <a href="http://paranamer.codehaus.org/" rel="noreferrer">ParaNamer</a> to find which parameters have which annotations? Need a solution which will work primarily for Scala case classes.</p>