3

簡単な例として、次のものがあります。

public static final int RUN_TYPE = 1;

if(RUN_TYPE == 1)
{

}

これにより、ifで「同一のものを比較しています」という警告が表示されます。「同一の比較」警告をグローバルに無効にせずに、この警告を取り除くにはどうすればよいですか?

4

2 に答える 2

3

「同一の比較」警告は、コンパイラが値を認識しており、RUNT_TYPEの値が1であることを認識しており、それを定数1と比較しているためです。これは意味がありません。

定数ではない別の変数と比較すると、実行時まで値を決定できないため、警告は表示されません。

例:

int ANOTHER_INT = 1;
if(RUN_TYPE == ANOTHER_INT {}

これにより、「同一の比較」の警告は表示されません。

于 2013-03-22T10:23:02.123 に答える
0

あなたは変数でfinalあるため、それが変化する機会はほとんどありません。なぜその値をテストする必要があるのですか?

編集

-D...次に、フラグを使用してJavaコマンドラインでプロパティを渡し、コードでこのプロパティを読み取ります。

if ( "WHATEVER".equals(System.getProperty("myproperty", "default_value"))) {
  ...
}
于 2013-03-22T10:20:25.113 に答える