2

いくつかの注釈処理 (シリアル化) を実行したい:

私が欲しいもの:

  • 問題のクラスをサブクラス化したくありません
  • メソッドを既存のクラスに挿入したい
  • ASMを使用してこれらのメソッドを追加したい
  • で生成したくありませんが、コンパイル時に自動的に生成します

私が持っているもの

  • 注釈:)
  • ASM で .class ファイルをスキャンして変更するコード

問題:

  • .class ファイルを処理するタイミングがわからない
  • 私の知る限り、AbstractProcessorアプローチでは新しいソースファイルの作成のみが許可されます
  • ASM を使用して.classファイルを変更しますが、メソッドをまだ作成する必要がある場合、コンパイラはどのように.javaファイルをコンパイルできますか?

アイデア:

  • 現時点では、追加するメソッドはインターフェースによって定義されていますが、スーパークラスを使用すると、ポストでオーバーライドできる何もしない実装を持つことができます。ただし、これは多くの柔軟性を奪います。それでも、javac を使用して 1 ステップでコンパイルする方法がわかりません...

ヒント、提案、解決策を事前にありがとう,
Till

4

1 に答える 1