2016-12-11 7 views
-2

javacツールは、ソースコードの注釈をどのように処理しますか?それらはコンパイルされ、バイトコードに変換されるか、コメント行の処理に似た方法で処理されますか?javacツールで注釈を処理する方法

+0

"プロセス"の意味を定義しますか?あなたは[**コンパイル時注釈処理**](http://hannesdorfmann.com/annotation-processing/annotationprocessing101)について話していますか? –

+0

はい、私はコンパイル時注釈処理を意味します。 –

答えて

1

注釈は、特別な方法でコンパイラによって処理されます。それらは解析されますが、ほとんどの注釈はコンパイラにとって何も意味しません。たとえば、@Overrideアノテーションを間違って使用すると、コンパイル時エラーが発生する場合があります。コンパイラ関連の注釈の一覧はhereです。

その後、動作は、注釈の種類によって異なります。
注釈がRUNTIMEまたはCLASSにそのrentention policy設定されている場合、それは実際にクラスファイルに含まれます。保持ポリシーがRUNTIMEの場合、アノテーションにはリフレクションを介して実行時にアクセスすることもできます。多くの図書館では、これを使用して快適性をさらに高めています。 JUnitは@Testを使って単体テストを実装するメソッドに印を付け、実行時にそれらを探します。

さらに、Javaコンパイラは、コンパイルユニットのASTにアクセスして注釈を処理できる、いわゆる「アノテーションプロセッサ」を実装することができます。これは、コンパイラが実際に注釈を処理するという別の証明です。

関連する問題