2012-04-28 6 views
11

最近、JCIPの注釈を読み上げると、すばらしく見えます。ウェブサイトに行き、ソースを見た。唯一の問題は、src jarに注釈が含まれていることです...実際には注釈プロセッサーがどこにあるのか分かりません何か!私はちょうど間違った場所を探していますか、実際のJava注釈ではありません(つまり、クラスをマークするときに@Immutableを実行する方法はありません)。JCIPでコーディングする方法(Java Concurrency in Practice)

  • @Immutable
  • @GuardedBy
+0

質問を編集し、JCIPの内容を説明してください。私はあなたがPracticeのJava Concurrencyを意味すると仮定しますが、展開する必要があります。そして私はあなたが意味する注釈に慣れていません。 – Gray

+0

そこに迷惑をおかけして申し訳ありません! – IAmYourFaja

答えて

10

FindBugsこれらのアノテーションをサポートしています。これらのアノテーションなどのサポートについては、this documentation pageに記載されています。

+0

JCIP注釈 - そのポイントは何ですか? JCIPの例で使用されている「中空」の注釈で、読者が従うのを助けるのか、あるいはJCIPとFindBugsの間に何らかの同盟関係がありますか? – IAmYourFaja

+3

注釈は一般的にそれだけです:注釈。あなたのソースやバイトコードに注釈を付けます。すべての注釈(文書化目的でのみ使用されている場合を除きます)は、いくつかのツールで処理されるはずです。 JCIPアノテーションの場合、FindBugsはそのようなツールです。あるクラスを不変であるとアノテートし、そのクラスが実際には不変でない場合、FindBugsはこのクラスを検査するときに警告を生成します。 JCIPアノテーションには2つの目的があります。コードの設計を文書化し、FindBugsや他のツールで目的のデザインが尊重されているかどうかを確認することができます。 –

1

JCIP注釈は、このメンバーがこのフィールドの「@GuardedBy」などの並行性コントラクトを文書化する正式な方法です。

コード内で機能的に何もしません。

4

IntelliJ IDEはこれらの注釈を使用してコード内のバグを探します。 @GuardedBy(some_lock)という変数に注釈を付けると、IDEは適切に同期しなくてもアクセスするケースにフラグを立てます。これは非常に便利です。

関連する問題