Ich sehe viele Referenzen auf javax.lang.model als die API für die Analyse von Java-Dateien und es scheint, dass es für das, was ich tun möchte, ausreicht. Aber ich finde keine Beispiele für die Verwendung der Klassen darin, beginnend mit dem Öffnen einer .java-Datei. Die einzige vage Referenz, die ich gefunden habe, ist das Schreiben eines Compiler-Plugins und das Aufrufen Ihres Codes mit javac.
Ist das der einzige Weg, diese API zu benutzen? Ist es nicht möglich, einfach eine Datei zu öffnen und die Instanzen der Klassen von javax.lang.model.element mit Ihrer eigenen main () zu bekommen? Könnte mich jemand auf solche Arbeitsbeispiele hinweisen?
Die Pakete javax.lang.model, javax.lang.model.element, javax.lang.model.element.type und javax.model.element.util sind für die Verwendung in Annotationsprozessoren (javax.annotation.processing) vorgesehen .Processor), die die Compiler-Plug-Ins sind, die Sie erwähnt haben. Es gibt eine Compiler-API, mit der Sie Klassen zur Laufzeit kompilieren und analysieren können. Sie können javax.tools.ToolProvider.getSystemJavaCompiler () verwenden, das eine javax.tools.JavaCompiler-Klasse zurückgibt. Es verfügt über eine Schnittstelle zum Kompilieren von .java-Dateien und zum Ausführen von Annotationsprozessoren. Weitere Informationen finden Sie JavaCompiler # getTask
Tags und Links java code-generation