• BPnet
  • ビジネス
  • IT
  • テクノロジー
  • 医療
  • 建設・不動産
  • TRENDY
  • WOMAN
  • ショッピング
  • 転職
  • ナショジオ
  • 日経電子版
  • PR

  • PR

  • PR

  • PR

  • PR

Java技術最前線

「Java SE 6完全攻略」第99回 アノテーションを処理する その6

櫻庭 祐一=横河電機 2009/02/16 ITpro

先週までの解説で,Pluggable Annotation Processing APIの機能はほぼ紹介しました。今週は応用編ということで,Compiler API からPluggable Annotation Processing APIを呼び出してみましょう。

Compiler APIからアノテーションプロセッサを使用する

本連載「Java SE 6完全攻略」の第89回から第93回まで紹介したCompiler APIは,プログラム中でJavaのソースをコンパイルするためのAPIです。しかし,ソースファイルのコンパイルだけでなく,アノテーション処理も行うことが可能です。

そこで今週は,先週使用したjavax.lang.model.util.ElementScanner6インタフェースを使用したアノテーションプロセッサをCompiler APIから呼び出してみます。

サンプルのソース (こちらからダウンロードできます)
Abstraction.java
AbstractionMethod.java
AbstractionProcessor.java
AnnotationProcessorSample1.java

Compiler APIでアノテーションプロセッサを呼び出す前に,少しだけCompiler APIの復習をしておきましょう。

Compiler APIでソースファイルをコンパイルするには,次のような手順で行います。

  1. ToolProviderクラスのgetSystemJavaCompilerメソッドをコールすることによりJavaCompilerオブジェクトを取得する
  2. JavaCompilerオブジェクトに対して,getStandardFileManagerメソッドをコールし,仮想ファイルマネージャであるStandardJavaFileManagerオブジェクトを取得する
  3. StandardJavaFileManagerオブジェクトに対して,setJavaFileObjectsメソッドなどをコールして,コンパイルする対象のJavaFileObjectオブジェクトを生成する
  4. 3で生成したJavaFileObjectオブジェクトを引数にして,JavaCompilerオブジェクトのgetTaskメソッドをコールし,JavaCompiler.CompilationTaskオブジェクトを生成する
  5. CompilationTaskオブジェクトのcallメソッドをコールする

アノテーションプロセッサを呼び出す場合でも,基本的な手順は同じです。異なるのは次の2点です。

  1. JavaCompilerオブジェクトのgetTaskメソッドをコールする時にアノテーションプロセッサを指定する
  2. CompilationTaskオブジェクトのcallメソッドをコールする前に,setProcessorsメソッドでアノテーションプロセッサをセットする

ここから先はITpro会員(無料)の登録が必要です。

次ページ コードで確認しよう
  • 1
  • 2
  • 3
  • 4

あなたにお薦め

連載新着

連載目次を見る

今のおすすめ記事

ITpro SPECIALPR

経営

アプリケーション/DB/ミドルウエア

クラウド

運用管理

設計/開発

サーバー/ストレージ

ネットワーク/通信サービス

セキュリティ

もっと見る