Esta es la primera vez que escribo un procesador de anotaciones y deseo invocarlo mediante programación. ¿Es posible?Invocar mediante programación los procesadores de anotación
He escrito pequeño código para el procesador:
@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;
}
}
Ahora Si quiero invocar el método de proceso, entonces, ¿cómo puedo hacer esto? ¿Puedo hacerlo de la siguiente manera:
HBMModelProcessor modelProcessor = new HBMModelProcessor();
modelProcessor.process(annotations, roundEnv)
Cualquier información será de gran ayuda para mí.
Gracias.
Gracias por su respuesta. Entonces, ¿no hay forma de obtener estas dos variables 'annotations' y' roundEnv'? –
Por supuesto, hay una forma de obtener 'annotations' y' roundEnv'. 'anotaciones = nuevo HashSet(); anotaciones agregue (/ * sus anotaciones * /); 'y' roundEnv = new RoundEnvironment() {/ * implementation * /} '¿Está tratando de probar la unidad de su procesador? Probablemente puedas usar un marco de burla. –
emory
@emory, quiero probar en unidad un procesador de anotación. Y una muestra sería bienvenida ya que esta es la primera entrada de Google. – Snicolas