Как предоставить директивы препроцессора в Java

Как я могу правильно предоставить следующее функционально из C# в Java?

[C#]

#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

3 ответов


Java не имеет препроцессора - поэтому простой ответ заключается в том, что вы не можете.

такого рода вещи обычно обрабатываются в Java с помощью инъекции зависимостей , которая является более мощной и более гибкой.

http://www.vogella.com/articles/DependencyInjection/article.html


Java не имеет препроцессора, но это не означает, что вы не можете запустить Java-код через cpp - хотя это не будет поддерживаться никакими инструментами, AFAIK.


используйте инъекцию зависимостей / инверсию управления. В зависимости от ваших фактических потребностей вы можете уйти с чем-то простым, как файл свойств/переменные среды для управления вещами.

вы можете использовать статические определения вокруг некоторые типы инициализации/код.