Стандарт Java позволяет манипулировать AST во время компиляции.Однако нет никакого стандарта в отношении API, и каждый компилятор реализует его по-своему (даже между версиями).На работе у нас было какое-то хакерское смешение времени компиляции и времени загрузки.Теперь мы превращаемся в процесс разработки, ориентированный на затмения, и этот хак доставляет нам некоторые неприятности.
Я написал агент JVM, который загружает преобразователь Javassist и переписывает байт-код, устраняя необходимость пересечения времени компиляции и решаянаши проблемы.
Мой вопрос: полезно ли пересечение во время компиляции для Java?Есть ли вариант использования, в котором вы не можете сделать это, используя пересечение во время загрузки?