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

148
27 марта 2018, 01:16

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

Answer 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, если вам нужно генерировать что-то по шаблону.

Как-то так.

READ ALSO
3 ошибки/предупреждения в Android Studio

3 ошибки/предупреждения в Android Studio

Доброго времени сутокНачал осваивать Android Studio и Java

133
Интерфейс Iterable

Интерфейс Iterable

Есть код класса IterNap:

137
Изменение ссылок при деплое на Heroku

Изменение ссылок при деплое на Heroku

Всем доброго времени суток! Столкнулся с проблемой при деплое своего сайта на HerokuВсе сделал правильно и сайт отображается, но все ссылки...

139
2 ошибки symbol при попытке подключить Spring Security

2 ошибки symbol при попытке подключить Spring Security

При попытке подключить Spring Security по следующему коду https://githubcom/proselytear/SpringSecurityApp проявилась 3 ошибки:

165