プロジェクトのこれらの行は何を意味していますか?Androidで@SuppressWarnings(「廃止予定」)と(「未使用」)とは何ですか?
@SuppressWarnings("deprecation")
@SuppressWarnings("unused")
プロジェクトのこれらの行は何を意味していますか?Androidで@SuppressWarnings(「廃止予定」)と(「未使用」)とは何ですか?
@SuppressWarnings("deprecation")
@SuppressWarnings("unused")
@SuppressWarnings
アノテーションは特定のコンパイラの警告を無効にします。この場合、推奨されないコード("deprecation"
)と未使用のローカル変数または未使用のプライベートメソッド("unused"
)に関する警告。 This article explains the possible values.
Javaでは、@SuppressWarnings
は、コンソール画面で特定の警告を表示するようにコンパイラを制限するために使用されます。
例えば
@SuppressWarnings("unused")
CheckBox transferredField = new CheckBox("is transferred");
私は私のコードでtransferredField
変数を使用していないならば、あなたのEclipse IDEは、あなたのコード内でこのtransferredField
変数を使用していない警告を表示しません。
私が試してみましたが、それが動作しない、と私は常にメソッドを使用し@SuppressWarnings("unused")
し、他の人が
lintOptions{
checkReleaseBuilds false
abortOnError false;
disable 'deprecation'
}
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
プロジェクト全体で警告を無効にしないでください。警告を無効にするには、できるだけ具体的なレベルにスコープを設定する必要があります。ここでは、あなたのケースで無視するのが正しい理由が分かります。プロジェクト全体でそれらを隠すことで、無視するよりもむしろ変化を考慮する必要がある正当な懸念が隠されます。 –
もう一つには、このプロジェクトでのGradle言う:あなたがいないだけで、インラインそれらを追加することができ、しかしまたannotate methods。 F.ex.
@Override
@SuppressWarnings("deprecation")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
しかし、それはスタイルの問題として
可能な最小のスコープを使用することが推奨され、プログラマは常にそれが効果的で最も深くネストされた要素でこの注釈を使用する必要があります。特定のメソッドで警告を抑制するには、クラスではなくそのメソッドに注釈を付ける必要があります。
ニースの回答@nfechener –