私はJavaのこの機能を理解していませんでした。私はそれがコーディングをより簡単にし、時にはきれいに見えることを知っていますが、これを実際に使うのは何ですか?反対に私は、警告を表示する方が良いと感じています。将来、コードを変更する前に誰かが参照できるようになります。この@SuppressWarningsは効率の向上につながりますか?これはコーディング標準に従っていますか?@SuppressWarningsの使用方法
答えて
他の回答には、すでに@SuppressWarnings
多くのユースケースを説明したが、私はは時々あなたは絶対に言語自体の限界を克服するために@SuppressWarnings
を使用する必要があり、これらの場合に@SuppressWarnings
の使用は絶対に合法であるという点を強調したいです。
@SuppressWarnings
の場合は、コードを変更して警告を取り除くことができます(ただし、必ずしも常に受け入れられるとは限りません)。ここで
あなたは絶対に@SuppressWarnings
せずに警告を取り除くことができない場合、いくつかの一般的な例です:
- (あなたが一般的な配列を作成することはできませんので)
- 配列担保ジェネリックコレクションを実装するクラスから
Map
へそれらの実装(異なるマップエンティティにジェネリック型パラメータの異なる値を割り当てることができないため)
実際の使用は警告を抑制することです。それでおしまい。それ以下のものはありません。私はそれがコンパイル効率に影響するとは思っていませんが、間違いなく時間効率を実行しません。
ジェネリック(Java < = 1.4)をサポートしていないレガシーコードを扱っているときにキャスト警告を取り除く唯一の実行可能な方法です。
プログラミング時には、コンパイラの警告と、最良の場合は警告なしで(そしてもちろんエラーも)コンパイルしてください。
しかし、警告を取り除くことができず、コードが正しいことを知っているか、変更できないことがあります。次に、コンパイラーから何か問題があると毎回気にしたくはありません。
あなたが言及したコマンドでそれを抑制することができます。
コンパイル時にSuppressWarnings
の使用が使用されます(したがって、コンパイラのみがSuppressWarnings
アノテーションを見たときに何をするかを知っています)。
JavaDoc状態:
The set of warnings that are to be suppressed by the compiler in the annotated element. Duplicate names are permitted. The second and successive occurrences of a name are ignored. The presence of unrecognized warning names is not an error: Compilers must ignore any warning names they do not recognize. They are, however, free to emit a warning if an annotation contains an unrecognized warning name.
あり@SuppressWarnings
を使用するためのいくつかの理由がありますが、最も有用な例1は、以下のとおりです。
は、警告の数千人との既存のプロジェクトを持ちます。あなたのチームは今警告に気をつけたいが、すべての警告を修正する時間はない。
アノテーションを使用すると、すばやく修正できない警告を抑制し、「クリーン」な基盤を得ることができます。
何千ものコードがあるときには誰も警告コードをチェックするのを恐れることはないので、コードベースに警告がなく、チーム内の他の人が誰かがすぐにわかるようになるので、 2つの警告でコードをチェックインしています。
- サードパーティ製のライブラリを使用しているため、多くの場合、libのコードを変更する以外は修正できないという警告が表示されます。
私の意見では、最初の理由は、@SuppressWarnings
の最適な使用例の1つです。
- 1. @SuppressWarnings( "serial")
- 2. EclipseにカスタムSuppressWarningsトークンを追加する方法
- 3. Android:SimpleCursorAdapterコンストラクタで@SuppressWarnings( "deprecation")を使用せずに、カーソルからSpinnerビューを作成する方法
- 4. @SuppressWarningsを必要とせずにこのジェネリックを正しくコーディングする方法
- 5. SuppressWarnings Eclipseの「すべて」の苦情
- 6. "@SuppressWarnings(" unchecked ")"の目的は何ですか?
- 7. Java:@SuppressWarnings(...)パラメータの完全なリスト(Netbeans内)?
- 8. Androidで@SuppressWarnings(「廃止予定」)と(「未使用」)とは何ですか?
- 9. Eclipse - @SuppressWarnings( "javadoc")が機能しません
- 10. Webアプリケーションでのインターセプタの使用方法と使用方法
- 11. 継続継承スタイルの使用方法と使用方法
- 12. mso - 使用方法
- 13. 使用方法:System.Collections.Concurrent
- 14. 使用方法?:operator
- 15. 使用方法0x08
- 16. 使用方法は
- 17. imap_searchで 'ALL'を使用する方法と使用方法
- 18. "SHFILEOPSTRUCT"の使用方法
- 19. speexジッタバッファの使用方法
- 20. SQLiteDatabase.CursorFactoryの使用方法
- 21. WAVEHDRの使用方法
- 22. CADISPLINK iOSの使用方法
- 23. Android:flurry APIの使用方法
- 24. SqlCacheDependencyの使用方法は?
- 25. ko.validation.groupの使用方法
- 26. dispatchTouchEventの使用方法は?
- 27. AVAssetResourceLoaderの使用方法は?
- 28. System.out.printfの使用方法
- 29. onResume()の使用方法は?
- 30. setGravity(Gravity.VERTICAL_GRAVITY_MASK)の使用方法
ジェネリックサポートまたはキャスト警告に使用されるだけではありません。 –
誰が言ってるの?:) –
あなたの投稿を読んでください。 –