2009-08-31 10 views
1

可能性の重複:
Plugging in to Java compilersAnnotationProcessorからバイトコードを読み取る

編集が- これは私がAnnotationProcessorを実装したいと思いますPlugging in to Java compilers


のだまされやすい人のように見えます呼び出されるaptツールで使用するのバイトコードにクラスをコンパイルすると、バイトコードを読み取り、変更することができます。

これを行う理由は、注釈付きのメソッドを別の言語に翻訳し、そのJavaのメソッドを翻訳バージョンを呼び出すスタブに置き換えたいからです。

しかし、AnnotationProcessorEnvironmentインターフェイスでは、新しいクラスを生成するメソッドしか提供されず、以前のラウンドで生成されたクラスファイルを読み戻すことはできません。

インストルメンテーションAPIは、私が望むものと似た何かを実行時に実行します。コンパイル時にこれを行う方法を探しています。

+0

リクエストに応じて閉鎖します。タイトルは説明的であり、より多くの人々をオリジナルに導くので、削除しない。 –

答えて

1

私は、コンパイラでは、いくつかの操作をやってみたかった外観を持っていたが、ポストプロセッサを使用して終了。

APTを使用して抽象構文木(AST)を操作できますが、コンパイラ固有のハッキングだけで操作できます。どうすればよいかのサンプルが必要な場合はProject LombokjavacとEclipseコンパイラで行います。現在のところ、より良い方法ではないようです。

+0

関連するだけでなく、詐欺です。リンクありがとう。 – finnw