Как предоставить директивы препроцессора в Java
Как я могу правильно выполнить следующие функции из С# в Java?
[С#]
#define PRODUCTION //Change from sandbox to production to switch between both systems.
#if SANDBOX
using NetSuite.com.netsuite.sandbox.webservices;
#endif
#if PRODUCTION
using NetSuite.com.netsuite.webservices;
#endif
Ответы
Ответ 1
В Java нет препроцессора, поэтому простой ответ заключается в том, что вы не можете.
Такое поведение обычно обрабатывается на Java, используя Dependency Injection, который является более мощным и гибким.
http://www.vogella.com/articles/DependencyInjection/article.html
Ответ 2
Java не имеет препроцессора, но это не означает, что вы не можете запускать Java-код через cpp
- хотя он не будет поддерживаться никакими инструментами, AFAIK.
Ответ 3
Использовать инъекцию зависимостей/инверсию управления. В зависимости от ваших реальных потребностей вы можете уйти с чем-то простым, как переменные файла свойств/среды, чтобы управлять вещами.
Возможно, вы сможете использовать static определяет некоторые типы инициализации/кода.
Ответ 4
Проверьте коллектор Java препроцессор. Он подключается непосредственно к компилятору, поэтому его очень просто использовать - никаких шагов сборки, промежуточного кода и т.д.
![Manifold's Java Preprocessor]()
Ответ 5
Вы можете использовать что-то на основе & lt; #FreeMarker>.
![enter image description here]()
Источник: https://github.com/mkowsiak/jpp
Однако это решение потребует предварительного этапа компиляции, если вы хотите изменить код. С другой стороны, вы все равно можете создавать код, который работает без предварительной обработки - что-то вроде компиляции "по умолчанию".