0

コードのチャンクを条件付きでコンパイルする/コンパイルしないように、いくつかの定数を宣言することがよくあります。これらの定数を 1 つのクラスに配置し、(大きな) アプリ コード全体で使用します。

Conf.java

    public static final int GUI_ACTIONBAR_HEIGHT=0;

他の場所 (例):

super.onCreate(savedInstanceState, Conf.GUI_ACTIONBAR_HEIGHT==0?R.layout.activity_funq_play_noactionbar:R.layout.activity_funq_play, true);

ただし、この場合、警告 " comparing identical expressions" が発生します。SupressWarningそれは明らかに私が一緒に暮らすことができるものですが、それを取り除く魔法があるかどうかを知りたいです(およびソースコードの黄色の警告アイコン)。

@SupressWarnings ("unused") 

トリックをしません。

4

2 に答える 2

0

非静的メソッドで機能する醜い回避策:

  1. 静的MyClass.CONSTANTアクセスをアクセスに置き換えthis.CONSTANTます。
  2. 代わりに、「静的フィールド MyClass.CONSTANT は静的な方法でアクセスする必要があります」という警告が 1 つ表示されます。
  3. @SuppressWarnings("static-access")この警告は、 and no more comparison 警告で抑制することができます。

あなたの例では、これは次のようになります:

@SuppressWarnings("static-access")
public void onCreate(Object p1, Object p2, boolean b) {
    super.onCreate(savedInstanceState, this.GUI_ACTIONBAR_HEIGHT==0?R.layout.activity_funq_play_noactionbar:R.layout.activity_funq_play, true);
}

この回避策は、非静的メソッドでのみ機能します。

于 2015-02-20T12:36:51.770 に答える
0

これは Java コンパイルの警告であり、オン/オフの切り替えは IDE に依存します。Eclipse を使用していると仮定すると、Preferences > Java > Compiler > Errors/Warning > Comparing identical values ('x==x') 'ignore'これでオフにする必要があります。

于 2014-03-21T18:01:56.867 に答える