使用中のロンボク島の過程では、唯一の適切なコメントを追加する必要があり、この目的のために任意のコードを記述する必要はありません。しかし、最終的には、自動生成されたコードは、それを生成する方法ですか?
コアは、解像度にコメントする場所です。JDK5ノートの導入だけでなく、2つの分析方法を提供します。
- パースランタイム
あなたが反射によって注釈を得ることができるように、注釈は、@Retentionランタイムランタイムを設定する必要があります解析することができます。java.langで、反射パッケージは、インタフェースAnnotatedElementのを提供するインターフェースは、情報の注意を得るために、いくつかの方法を定義するクラス、コンストラクタ、フィールド、メソッド、パッケージなどのインターフェースを実装し、反射が非常に馴染みの友人となり反映すべきですこの分析法に精通。
- コンパイル時の解析
コンパイル時に、それぞれ、簡単な説明の下に解決するには2つのメカニズムがあります。
1)注釈処理ツール
生成しがちJDK5、JDK7が期限切れとしてマークされているので、完全にJDK6開始から削除されましたJDK8での使用は推奨されていない、あなたは、主に二つの理由です交換するプラグイン可能な注釈処理のAPI、aptでそれを置き換えることができます。
- 非標準的なパッケージの下com.sun.mirrorでAPI
- 、javacのに追加の実行の必要性を統合されていません
2)プラグイン可能な注釈処理API
JSR 269 JDK6からは、aptの代替として、追加され、それは二つの問題ががちである私たちは、コンパイラにいくつかの機能強化を行うことができるように、プログラムの実行中のjavacは、javacのを実行し、APIの実装を呼び出します解決します次のようにプロセスは次のとおりです。
ロンボク島で、本質的に「の実現であるJSR 269 API」のプログラム。次のようにエフェクト処理を持っているのjavacを使用するプロセスです。
- javacのソースコード解析は、抽象構文ツリー(AST)を生成
- 動作中ロンボク島の「JSR 269 API」プログラムを達成するために呼び出します
- このとき、第1の処理ステップでASTロンボクための各ツリーノードはここ構文ツリー(AST)に対応するクラス@Data注釈を検索するには、得、次いで構文ツリー(AST)を変更、増加するゲッターとセッターメソッドを定義
- 修正抽象構文木(AST)を使用して、javacは、新しいクラスのノード(ブロック)を追加する、つまり、バイトコードファイルを生成
ロンボクは、対応する注釈は注釈@Getter実現などHandleXXX、HandleGetter.handle()は、達成するためにソースコードを読んでいます。など、この使用してライブラリ、達成するための他の方法がありますGoogleの自動、ダガーようにとは。
オリジナルます。https://www.cnblogs.com/heyonggang/p/8638374.html
免責事項:このブログは、他の同様の作品と同様に、個人的な学習である純粋な偶然で、複製、ソースを明記してください!