Как сказал Шон Патрик Флойд, Lombok действительно кодирует внутренний API. Однако, поскольку lombok ТОЛЬКО участвует в фазе компиляции, утверждение, что Lombok будет работать только на виртуальной машине Sun, вводит в заблуждение. Он будет компилироваться только на ecj или sun javac. Однако подавляющее большинство существующих виртуальных машин, если они вообще поставляют компилятор, являются одной из этих двух. Например, Apple VM поставляется со стандартным Sun javac, и поэтому ломбок отлично работает на Mac. То же самое, например, относится к сойлатовому ВМ.
В то время как для javac нам действительно нужно придерживаться их обновлений, отчасти из-за большой продолжающейся работы над их компилятором прямо сейчас, нам пришлось внести только одну небольшую корректировку в нашу поддержку eclipse во многих версиях eclipse. Итак, хотя мы пишем код для внутреннего API, они являются относительно стабильными битами.
Если бы то, что делает lombok, можно было бы сделать, не прибегая к внутреннему API, мы бы сделали что-то еще, но это невозможно, поэтому мы прибегаем к использованию внутреннего API.
NB: Я один из ведущих разработчиков ломбока, поэтому я, наверное, немного предвзято: P
person
rzwitserloot
schedule
24.05.2011