Как использовать аннотации Java для изменения исходного кода перед окончательной компиляцией?

Я прочитал со страницы инструмента apt, что можно создать AnnotationProcessors для генерации новых производных файлов (исходных файлов, файлов классов,дескрипторы развертывания и т. д.) . Я ищу, например, для этого.

Мне нужно закодировать все аннотированные строки во время компиляции, чтобы чтение файла класса не позволяло читать статические строки:

Базовый код:

String message = (@Obfuscated "a string that should not be readable in class file");

Следует переработать как:

String message = new ObfuscatedString(new long[] {0x86DD4DBB5166C13DL, 0x4C79B1CDC313AE09L, 0x1A353051DAF6463BL}).toString();

На основе статического метода ObfuscatedString.obfuscate (String) платформы TrueLicense процессор может сгенерировать код для замены аннотированной строки. Действительно, этот метод генерирует строку «new ObfuscatedString ([numeric_code]). ToString ()». Во время выполнения метод toString () ObfuscatedString может возвращать строку, закодированную в числовом коде.

Есть ли идеи, как написать метод process () AnnotationProcessor для редактирования аннотированного кода?

Заранее спасибо ,

11
задан Joachim Sauer 6 July 2011 в 13:54
поделиться