Процессор аннотаций для добавления вызова метода - PullRequest
2 голосов
/ 25 ноября 2011

Я пишу процессор аннотаций, и мне нужно TreeTranslator.visitIdent для выполнения статического вызова метода.Я думаю, что я должен использовать TreeMaker.Call, или TreeMaker.Create, или я должен использовать JCMethodInvocation?Я не мог найти пример того, как его использовать.Кто-нибудь может мне помочь с этим?

1 Ответ

0 голосов
/ 02 марта 2012

Во время работы процессора аннотаций проверяемый класс существует только в исходной форме.Таким образом, вы не можете вызывать методы для него.

Кроме того, обработчики аннотаций не могут напрямую изменять скомпилированный класс.Вместо этого вы должны создать новый класс:

Filer filer = env.getFiler();
PrintWriter pw = filer.createSourceFile("com.example.MyClass");
...