Если вам нужна мощная логика времени компиляции для Java, один из способов сделать это - с помощью некоторого рода генерации кода. Поскольку, как отмечали другие авторы, язык Java не предоставляет никаких функций, подходящих для выполнения логики времени компиляции, это может быть вашим лучшим вариантом (если вам действительно нужна логика времени компиляции). После того, как вы исчерпали другие возможности и вы уверены , что хотите создать код, вас может заинтересовать мой проект с открытым исходным кодом Rjava, доступный по адресу:
http://www.github.com/blak3mill3r
Это библиотека для генерации кода Java, написанная на Ruby, которую я написал для автоматической генерации интерфейсов Google Web Toolkit для приложений Ruby on Rails. Это оказалось весьма удобным для этого.
В качестве предупреждения может быть очень сложно отладить код Rjava, Rjava не выполняет много проверок, он просто предполагает, что вы знаете, что делаете. Это в значительной степени состояние статического метапрограммирования в любом случае. Я бы сказал, что его значительно легче отлаживать, чем что-либо нетривиальное, сделанное с C ++ TMP, и его можно использовать для тех же целей.
В любом случае, если вы планируете написать программу, которая выводит исходный код Java, остановитесь прямо сейчас и посмотрите Rjava. Возможно, он еще не делает то, что вы хотите, но у него есть лицензия MIT, так что не стесняйтесь его улучшать, жарить или продавать его своей бабушке. Я был бы рад, если бы другие разработчики, имеющие опыт работы с общим программированием, могли прокомментировать дизайн.