web-dev-qa-db-ja.com

Javaでプリプロセッサディレクティブを提供する方法

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
24
Robert H

Javaにはプリプロセッサがありません-簡単な答えは、できないということです。

この種のことは通常、依存性注入を使用してJavaで処理されます。これはより強力で柔軟性があります。

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

18
Tim B

Javaにはプリプロセッサがありませんが、それはJava cppを介してコードを実行できないことを意味しません-ただし、どのツールでもサポートされていませんが、 。

9
Ingo

依存性注入/制御の反転を使用します。実際のニーズに応じて、物事を制御するためのプロパティファイル/環境変数のような単純なもので逃げることができるかもしれません。

some初期化/コードの周りで静的定義を使用できるかもしれません。

1
Dave Newton

Manifold's Javaプリプロセッサー。コンパイラーに直接プラグインするため、本当に簡単に使用できます。ビルド手順や中間コード生成などは不要です。

Manifold's Java Preprocessor

0
Scott

<#FreeMarker>に基づいたものを使用できます。

enter image description here

ソース: https://github.com/mkowsiak/jpp

ただし、コードを変更する場合、このソリューションではプリコンパイル手順が必要になります。一方、前処理ステップなしで機能するコードを作成することもできます-一種の「デフォルト」コンパイル。

0
Oo.oO