Annotation zur Laufzeit einer Java Klasse hinzufügen ?

slugger_2k

Grünschnabel
Hallo Java-Geeks

ich steh grad ein bischen auf dem Schlauch und bräuchte mal paar Tips,
und zwar möchte ich eine einfache Entity mit Gettern/Settern zur Laufzeit Annotationen.

Hier ein Beispiel:

Code:
public String getField1(){
}

soll werden zu:

Code:
@Export(column="Name")
public String getField1(){
}



Dachte schon an AspectJ, nur kommt nur das so vor als würde ich da mit Kanonen auf Spatzen schießen....


Um ein paar Tips wäre ich euch echt dankbar..


greetz Slugger
 
Hallo,

warum willst du das machen? Möchtest du legacy code mit Annotations austatten? -> Hier gäbe es noch die Möglichkeit die zu annotierenden Meta-Informationen extern abzulegen (z.Bsp. als XML Datei)

in der Tat lässt sich das mit AspectJ und declare via "Introduction" realisieren:
http://www.eclipse.org/aspectj/doc/released/adk15notebook/annotations-declare.html
http://www.tutorials.de/java/243655-aspectj-introduction.html

Ansonsten musst du IMHO dynamisch neue Klassen erzeugen, oder den bytecode deiner Klassen vor dem Laden manipulieren. -> Das wären noch größere Kanonen.... ;-)

Gruß Tom
 
Hi Tom,

dank für die Antwort.
Hab vor mir nen voll generischen SQL-Query Excel Exporter zu bauen.
Allerdings hatte ich schon einen Exporter auf Basis von Annotations,
und den wollte ich so nutzen ohne groß was ändern.

Ok dann werd ich doch den Exporter umschreiben, so dass er mir einfach eine List<Map<String,Object>> nimmt statt einer Entity mit Annotations.


Danke und Gruß

Slugger
 
Zurück