Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Есть ли в джава аналог препроцессора как в с++

#java


Есть ли в джава аналог препроцессора как в с++.(Есть ли анологи плюсовых define)
    


Ответы

Ответ 1



Коротко: нет, в java нет препроцессора. Длиннее: java является высокоуровневым языком (по крайней мере относительно c++), для которого препроцессор (ИМХО) был бы костылем. Однако, в зависимости от целей, виртуальная машина java вполне может оптимизировать некоторые моменты на лету. Например: public static final int someValue = 0; В java будет работать во многих случаях так же, как и #define someValue 0 в c++. Если вам действительно нужен препроцессор, то можете воспользоваться чем-то вроде этого. Не знаю, для чего вам понадобился препроцессор, но может быть вы хотите генерировать различные исходники в зависимости от каких-то факторов? (Мне как-то для проекта понадобились различные версии векторов - Vec3f (float) Vec3d (double) и так далее. Мне было лень дублировать исходники для каждого примитивного типа, и я написал класс-шаблон для Apache Velocity, который потом при сборке gradle-ом прогонял через, в общем-то, сам velocity, и после сборки у меня было несколько идентичных классов для разных типов переменных). Поэтому можете использовать velocity, если вам нужно генерировать что-то по шаблону. Как-то так.

Комментариев нет:

Отправить комментарий