10

重複
の可能性: コンパイルされないように Java コードをマークする方法

では、次のようなブロック コードのコンパイルを防ぐことができます。

#if 0

    //code here

#endif

したがって、コード ブロックがエラーを起こしやすいコード コンパイルであっても、Java で同じことを行いたいので、一部のライブラリが見つからないためにコンパイルされないコードの部分をスキップできます。

誰でも私を助けることができますか?

4

6 に答える 6

20

Java にはプリプロセッサがありません。ビルド システムによっては、サードパーティのプリプロセッサを使用できる場合があります (「Java プリプロセッサ」で検索すると、多くのプリプロセッサを見つけることができます)。いくつかの例は

コメントアウトするスコープに応じて、ブロックコメントを使用でき、場合によっては次のようなものを使用できます

if (false) {
    . . .
}

他のすべてが失敗した場合は、を使用してすべての行をコメントアウトします//。ほとんどの IDE には、これを効率的に行う (および元に戻す) 方法があります。

PS ブロック コメントを使用できる場合 (Java ではブロック コメントをネストできないため、常に使用できるとは限りません)、コメント アウト部分のオンとオフを簡単に切り替えるための優れたトリックがあります。ブロック コメントは 1 行で開始しますが、次のように、行コメントで始まる別の独立した行で終了します。

/*
   <block of code ignored as comment>
//*/

次に、コメントアウトされたセクションをオンに戻したい場合/は、ブロックの先頭に1 秒追加します。

//*
   <block of code now active>
//*/

コードを再度オフにするには、最初の/. (//最後の行の先頭に がないと、ブロックの開始行に*/a を追加してコードをアクティブ化するたびに、ダングリングが構文エラー/になります。)

于 2013-01-08T05:13:16.443 に答える
14

コードをコメントアウトする必要があります。Java でプリプロセッサ ディレクティブを使用することはできません。

于 2013-01-08T05:09:54.463 に答える
8

私は、コンパイラが定数/最終フラグで強制されたブロック内のコードを削除すると仮定していますか? これにより、最終的な apk に含まれていないコードをプロジェクトに残すことができます。

public final static boolean DEBUG = false;

if(DEBUG) {
    //add messy error prone code here
    //compiler will strip this out as unreachable when false
}

ここを読む:

http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.21

于 2013-01-08T05:13:39.733 に答える
1

私が使用した手法の 1 つは、m4を Java ファイルのプリプロセッサとして使用することです。コードを記述しclassname.java.m4、Makefile またはその他のビルド システム ルールを使用して m4 を実行します。

%: %.m4
        @echo "/* automatically generated from $< -- don not edit*/" >$@
        m4 $< >>$@
于 2013-01-08T05:14:28.050 に答える
1

java プリプロセッサの機能を提供しません。

ところで、以下のようにコメントを使用できます:

Eclipse を使用している場合は、コメント アウトするコード ブロック全体をマークしてから、CTRL + SHIFT + C を使用してコード ブロックのコメントとコメント解除を行うことができます。

于 2013-01-08T05:14:39.283 に答える
1

Java には、C のようなプリプロセッサはありません。

タグによると、Eclipse を使用しているため、コメントアウトしたいコードのブロック全体をマークしてから を使用できますCTRL - /

同じキー シーケンスを使用して、既にコメント アウトされているブロックのコメントを解除することもできます。

于 2013-01-08T05:09:26.667 に答える