2

私は Android 向けの開発を始めています (そして、それだけの価値があるかどうかを考え始めています)。Eclipse からも奇妙な警告やエラーが何度も出されます。これは、過去 2 時間、Google で運がなかったために私をイライラさせ続けたものです。

private String alertTitle= null;

あります!「alertTitle」を削除し、副作用のある割り当てを保持してください。これは何ですか?!Javaの状態とまったく同じように変数を定義しています。後で変数を使用しています:

public ASAlertDialog setTitle(String title) {
        this.alertTitle = title;
        return this;
    }

少し似ている別のものは、列挙型の定義です」

public enum MyStyles {
     aStyle;
}

public MyStyles myStyle = aStyle;

これはエクリプスを怒らせた!

4

5 に答える 5

3

値を代入して変数名を使用している可能性がありますが、変数に格納されている値を使用していません。そのためには、変数名を使用して格納された値を取得し、取得した値をコードのどこかで使用する必要があります。

値が取得されない場合、Eclipse は変数に未使用のタグを付けます(より一般的には、値を取得することはできません* )。これは、単に値を割り当てているだけで、どこでも使用していないことを意味します。これにより、変数が不要なメモリを占有するため、警告が発生します。

*publicおよびprotected変数は、宣言されているクラス内で取得されなくても、他のクラスで取得できるため、警告を受けません。また、現在どのクラスでも取得されていない場合でも (将来発生する可能性があります)ライブラリの使用による)。

の場合、次のenumようになります。

public MyStyles myStyle = MyStyles.aStyle;

これは、enumがクラスのようなものであり、定数がクラス内の静的変数と同様に機能するためです。(これは単なる類推であり、正確な言語定義ではありません。 ) として定義されている外部クラスから変数を取得するのと同じ方法で列挙型定数を取得しますstatic

于 2013-08-02T10:47:55.363 に答える
1

あなたの最初の質問に:

変数が使用されていないことを意味するだけなので、安全に削除できます。コードで変数の使用を開始すると、警告は消えます。副作用については、次のように説明されています。

http://www.cs.umd.edu/~clin/MoreJava/Intro/assign.html

「代入は式ですか?」を確認してください。

2 番目の質問に:

「;」はありません 列挙型を定義する際。これをチェックして:

http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

于 2013-06-06T13:55:13.847 に答える
1

あなたの変数は使用されていないため、Eclipseはそれについて通知するため、メッセージが表示されますRemove "alertTitle", keep assignments with side effects

于 2013-06-06T13:47:29.167 に答える
1

列挙型の場合、次のように宣言する必要があります

public enum MODE
{
   NO_ASYNC_TASK,
   NO_DOWNLOADED_DRAWABLE,
   CORRECT
};

詳細については、この回答を確認してください

alertTitle警告は、宣言後に変数を使用していない可能性があるためです。

于 2013-06-06T13:48:12.993 に答える
0

試す

public enum MyStyles {
     aStyle;
}

public MyStyles myStyle = aStyle;

String に関しては、変数が使用されていないことを Eclipse が通知する可能性があります。

ところで、

private String alertTitle;

はデフォルトで null ですが、なぜ "= null" を設定するのですか?

于 2013-06-06T13:49:56.383 に答える