Большинство практических примеров использования преобразований AST представлены на этой странице. Я часто использовал @Delegate для делегирования другому классу или @Lazy для отложенной загрузки. @Grab отлично подходит для извлечения зависимостей из репозитория Maven / ivy. Все они основаны на преобразованиях AST и являются частью основного языка.
Вы также можете использовать трансформации напрямую, но большинство вещей, для которых вы хотели бы их использовать, уже создано. Вы можете делать то, что вы, возможно, захотите делать с AOP на других языках.