1

デスクトップと j2me アプリケーションを作成しています。プログラムにデバッグ ステートメントがあります。現在、コンパイルされるのを避けるために、次のように使用しています。瓶のサイズを小さくするためにこれを行っています。(特にモバイル向け)

ConstantFile.java
Boolean ConstantFile.DebugEnabled = false;

if(ConstantFile.DebugEnabled) {
log.debug("msg");
}

しかし、これは一種のハードコーディングです。プリコンパイルされたディレクティブがある C のような代替手段はありますか。注釈はここで役立ちますか? または私が探すべき何か他のものはありますか?

4

3 に答える 3

2

いいえ、Java にはプリコンパイルはありませんが、現在使用しているような定数ファイルを使用する代わりに、Log4j または isDebugEnabled() 操作をサポートするその他のロギング パッケージを試してください。これにより、構成ファイルまたは VM 引数を優先するハードコーディングが回避されます。

于 2010-03-03T15:51:27.913 に答える
0

私が望んでいた正確な答えを得ました。プリプロセッサ。提案された hattman82 と同様に、wtkpreprocess タスクが利用可能です。そして、モバイル向けに特別に開発されました。(ただし、他の Java 部分にも使用できます。) そして、完全に機能します。行をコメントアウトするため、バイトコードは軽量のままです。

于 2010-03-17T12:02:40.627 に答える
0

注釈が機能するか、AOP を見ることができます。AOP を使用すると、特定のポイントでコードをメソッドに自動的に挿入できます。どちらの方法でも、必要なものが得られるはずです。

于 2010-03-03T15:59:19.180 に答える