1

重複の可能性:
Javaコンパイラへのプラグイン

編集-これはJavaコンパイラへのプラグインの複製のようです


クラスをバイトコードにコンパイルした後に呼び出され、バイトコードを読み取って変更できるツールでAnnotationProcessor使用するためのを実装したいと思います。apt

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

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

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

4

1 に答える 1

1

コンパイラーで操作したいときに見てみましたが、結局ポストプロセッサーを使用していました。

APTを使用して抽象構文木(AST)を操作できますが、コンパイラ固有のハックを使用する必要があります。それがどのように行われるかのサンプルが必要な場合は、ProjectLombokがSunjavacおよびEclipseコンパイラーを使用してそれを行います。現在、これ以上の方法はないようです。

于 2009-08-31T18:08:05.427 に答える