Dies ist das erste Mal, dass ich einen Annotation Processor schreibe und ich möchte ihn programmgesteuert aufrufen. Ist es möglich?Programmatisch Annotation Processors aufrufen
Ich habe kleine Code für den Prozessor geschrieben:
@SupportedAnnotationTypes({"app.dev.ems.support.annotation.HBMModel"})
public class HBMModelProcessor extends AbstractProcessor {
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
Set<? extends Element> elements = roundEnv.getElementsAnnotatedWith(HBMModel.class);
System.out.println(elements);
return true;
}
}
Wenn ich nun den Prozess Methode aufrufen wollen, dann, wie kann ich dies tun? Kann ich es auf folgende Weise tun:
HBMModelProcessor modelProcessor = new HBMModelProcessor();
modelProcessor.process(annotations, roundEnv)
Alle Informationen werden mir sehr hilfreich sein.
Danke.
Danke für die Antwort. Also gibt es keine Möglichkeit, diese beiden Variablen "Annotations" und "roundEnv" zu bekommen? –
Natürlich gibt es eine Möglichkeit, "Annotationen" und "roundEnv" zu erhalten. 'Anmerkungen = new HashSet(); Anmerkungen. addiere (/ * deine Annotationen * /); 'und' roundEnv = new RoundEnvironment() {/ * implementation * /} 'Versuchst du, deinen Prozessor zu testen? Sie könnten wahrscheinlich ein spöttisches Framework verwenden. –
emory
@emory, Ich möchte einen Annotationsprozessor Unit-Test. Und ein Beispiel wäre willkommen, da dies der erste Google-Eintrag ist. – Snicolas