Если вы идете по маршруту Java, вы не хотите использовать регулярные выражения - вам нужен настоящий анализатор Java. Так что это может повлиять на ваше решение. Имейте в виду, Oracle JVM включает один, как часть их внутренних закрытых классов, которые реализуют компилятор Java, так что вам на самом деле не нужно писать один самостоятельно, если вы этого не хотите. Но декодирование Oracle AST также не является 5-минутной задачей. И, конечно, использование этого не переносимо, если это важно.
Если вы пойдете по маршруту ASM, байт-код будет легче анализировать, так как семантика намного проще. Перевесит ли простота анализа незнакомость с точки зрения чистого времени для вашего решения. В конце концов, с точки зрения сгенерированного кода, ни один не «лучше».
Существует очевидная простота просто взглянуть на сгенерированный исходный код Java и «знать», что вы видите то, что вы получаете против выполнения примитивных дампов файлов классов для отладки и т. Д., Но вся эта очевидная простота есть из-за Ваша уже существующая комфортность с языком Java. Как только вы потратите некоторое время на прохождение байт-кода, это тоже станет удобным. Просто вопрос, стоит ли вам времени, чтобы добраться туда в первую очередь.