あけましておめでとうございます。今年もJava技術最前線ではJavaの新しい技術を取りあげていく所存ですので,よろしくお願いします。

さて,新年はじめてのJava技術最前線で取りあげるのはアノテーションです。

えっ,アノテーションってJava 2 SE 5.0の機能ではなかったっけ,と思う人も多いはず。確かに,アノテーションはJ2SE 5.0で取り入れられた機能ですが,Java SE 6ではアノテーションを処理するための新しい機能が取り入れられたのです。

J2SE 5.0では,アノテーションを処理するため,次の3つの方法がありました。

  • Javadoc
  • apt (Annotation Processing Tool)
  • リフレクション

この中で最も使用されていたのが,aptです。しかし,aptはあくまでも非標準のツールでした。

アノテーションはJSR 175で仕様が策定されましたが,JSR 175にはアノテーションの処理に関してはスコープに入っていません。そこで,J2SE 5.0がリリースした後,新たにJSR 269 Pluggable Annotation Processing APIが策定されました。

Java SE 6ではこのJSR 269が取り入れられ,javacコマンドでアノテーションを処理することが可能になったのです。

ということで,今月はアノテーション処理のためのPluggable Annotation Processing APIについて紹介していきます。

ところで,読者のみなさんはアノテーションを使っていますか? 最近はJUnitやSpring Frameworkなどアノテーションを活用している場面も増えています。また,本連載で取りあげたJAXBやJAX-WSは多くのアノテーションを使用していました。

アノテーションを使用したことがある人は増えているはずですが,アノテーションを自作したという人はどのくらいいるのでしょうか。ほとんどの人がアノテーションは使うだけという状態になっているのではないでしょうか。

そこで,今週はまずアノテーションを処理する前に,自作のアノテーションを自作することについて解説していきます。