Wie der Zugriff auf Annotation definiert auf Fall-class-Feld zur Laufzeit

Habe ich den folgenden java-Annotation definiert

   @Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.FIELD})
   @Retention(RetentionPolicy.RUNTIME)
   public @interface MyAnnotation { 
     String value() default "";
   }

Und ich habe die folgende scala Fall Klasse definiert:

@Prefer("xyz")
case class TestAnno(arg1 : String, @Prefer("abc") agr2 : String)

Ich bin in der Lage, siehe die Anmerkung definierten Fall Klasse mit der spiegelung, aber ich bin nicht in der Lage, den Zugriff auf die annotation definiert arg2 Mitglied von Fall Klasse TestAnno. De-kompilieren des Codes sehe ich, dass weder die Deklaration von Variablen oder es ist scala-accessor zu haben scheinen, die annotation. Nur der Konstruktor-definition und copy Methode scheinen behalten die Anmerkung zum Parameter definiert, wenn die Klasse Erklärung.

Gibt es eine andere Möglichkeit, um Kraft der scala-compiler zum generieren von Annotationen, die für die deklarierten Felder in Fall Klasse oder ich Lesen Sie den Konstruktor und die Benutzung einer Bibliothek wie ASM ByteCode-Bibliothek oder ParaNamer zu ermitteln, welche Parameter haben die Anmerkungen? Benötigen Sie eine Lösung, die arbeiten werden in Erster Linie für Scala case-Klassen.

InformationsquelleAutor cracked_all | 2012-07-13
Schreibe einen Kommentar