Подтвердить что ты не робот

Как предоставить директивы препроцессора в 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
4b9b3361

Ответ 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

Однако это решение потребует предварительного этапа компиляции, если вы хотите изменить код. С другой стороны, вы все равно можете создавать код, который работает без предварительной обработки - что-то вроде компиляции "по умолчанию".