如何在Java中提供预处理程序指令

时间:2013-12-12 14:50:25

标签: java preprocessor-directive

如何在Java中正确地从C#中提供以下功能?

[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

5 个答案:

答案 0 :(得分:18)

Java没有预处理器 - 所以简单的答案就是你不能。

这种事情通常使用依赖注入在Java中处理 - 它更强大,更灵活。

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

答案 1 :(得分:9)

Java没有预处理器,但这并不意味着您无法通过cpp运行Java代码 - 尽管任何工具AFAIK都不支持它。

答案 2 :(得分:1)

使用依赖注入/控制反转。根据您的实际需要,您可以使用像属性文件/环境变量这样简单的东西来控制事物。

您可以在某些类型的初始化/代码周围使用静态定义。

答案 3 :(得分:0)

您可以使用基于<#FreeMarker>的内容。

enter image description here

来源:https://github.com/mkowsiak/jpp

但是,如果要更改代码,此解决方案将需要预编译步骤。另一方面,您仍然可以创建无需预处理即可工作的代码-一种“默认”编译。

答案 4 :(得分:-1)

签出Manifold's Java预处理程序。它直接插入编译器,因此使用起来非常简单-无需构建步骤或中间代码生成等。

Manifold's Java Preprocessor