Преобразование кода Java во время компиляции

Я хотел бы преобразовывать исходный код Java во время компиляции непосредственно перед передачей исходный код компилятору. Другими словами, я хотел бы создать препроцессор , способный преобразовывать

"bla bla bla" 

в любой другой код, такой как :

new MyClass("bla", 3) 

. Моей реальной мотивацией является шифрование строк, как объясняется здесь

Некоторые люди предлагают писать собственные обработчики аннотаций, но, насколько я понимаю, аннотации:

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

Некоторые люди предлагают использовать такие фреймворки, как Spoon или ObjectsWeb ASM, но эти фреймворки кажутся сложными для изучения и развертывания на базе существующего кода.

Я стремлюсь найти простой пример предварительной обработки Java-кода для обоих подходов.

Видит ли кто-нибудь разумный способ преобразования кода без полного изменения существующей большой базы кода с помощью нескольких модулей ivy? Аннотации кажутся лучшим способом, но я не понимаю, как это сделать.

25
задан Community 23 May 2017 в 11:54
поделиться