私はannotationprocessorを使ってゼロからクラスを生成できますが、lombokのようなクラスは変更できませんでした。私はアンドロイドスタジオでロンボクで生成されたクラスを検索しましたが、何も見つかりませんでした。その後、私は自分のウェブサイトでロンボクの概要をチェックし、フォーラムでも調査しましたが、何もせずに終わりに達しました。私の質問は実際にはとても単純です。たとえば、@ Setterを使用しているときに、lombokが生成されたコードを鉱山と統合する方法。どのように私はプロセッサを開発することができますか?Lombokは既存のクラスにコードを生成する方法は?
10
A
答えて
4
How does lombok work?と重複しているようですが、私はデュープとしてクローズするつもりですが、あなたの賞金はそれを防止しています。
要するに、ロンボクは実際にコードを生成しません。代わりに、ソースコードを読み込んでコンパイルされたバイトコードを出力する間に、プログラムの抽象構文木を直接変更するために、未定義で未定義の内部コンパイラ実装api呼び出しを使用します。新しいコンパイラバージョンへの更新時に警告や通知なしで中断する可能性がありますが、現在のところ他の方法はありません。
-1
ロンボクはコンパイル段階でコードを生成しています。ここにはhttp://hannesdorfmann.com/annotation-processing/annotationprocessing101のチュートリアルがあります。
あなた自身のアノテーションを宣言するのが初めての方は、ランタイムアノテーションを使い始めることを強くおすすめします。それらは理解しやすく、デバッグしやすく、ランタイムフェーズではすでに慣れ親しんだコードが「動作」します。そのための短いチュートリアル:http://docs.oracle.com/javase/1.5.0/docs/guide/language/annotations.html
関連する問題
- 1. Netbeans IDEの既存のクラスからクラス図を生成する方法
- 2. 既存のManagedObjectサブクラスからエンティティモデルを生成する方法は?
- 3. Entity Framework 5 - 既存のデータベースからPOCOクラスを生成する方法
- 4. Lombokはメソッドを生成しません
- 5. CUDAを既存のクラス構造に統合する方法は?
- 6. 既存のXamarin.iOSプロジェクトをXamarin.Formsコードに移行する方法は?
- 7. Javaの既存のコードを使用してクラスのUML図を生成するには?
- 8. xcode 4.3 - 既存のクラスからデータモデルを作成する方法
- 9. 既存のJMeter csv/jtlファイルのダッシュボードレポートを生成する方法
- 10. 既存のWebページにjavafx fxmlプロジェクトで生成されたhtmlコードを挿入する方法は?
- 11. 既存のクラス図をインポートしてJPAエンティティを生成する
- 12. 既存のDBからMigrationBuilderを自動生成する方法
- 13. 既存のデータベースからPOCOプロキシを生成する方法
- 14. Symfony既存のデータベースからエンティティを生成する方法
- 15. Lombokビルダーでコンストラクターの後にコードを実行する方法
- 16. 自動生成されたC#partialクラス内の既存のメソッドを調整する方法は?
- 17. Visual Studio 2017 - 既存のコードからクラス図を生成できません
- 18. symfony2の既存のテーブルからエンティティを生成するには?
- 19. 既存のメソッドのdoxygenブロックを生成するには?
- 20. 新しいマイグレーションマイグレーションが既存のjOOQ生成コードを破る
- 21. usercontrolの既存のインスタンスのオブジェクトインスタンスを作成する方法は?
- 22. 既存のJavaコードから.yamlファイルを生成しますか?
- 23. GenerationType.SEQUENCEは既に存在するIDを生成します
- 24. JAXB生成クラスにカスタムビヘイビアを追加する方法。既存のメソッドをオーバーライドしないカスタム
- 25. 既存のEclipseプロジェクトにクラスを追加する方法
- 26. 既存のCSSクラスに要素を追加する方法
- 27. TypeScript UMLクラス図の生成方法は?
- 28. ログ生成のアンドロイドプラットフォームにCustomApplicationクラスを追加する方法は?
- 29. django - 既存のコードをModelFormインスタンスに変更する方法
- 30. Java:既存のテーブルからCREATE TABLEコードを生成
また、「どのように?」などのプロセッサを開発することができますか?最も簡単な方法は、カスタムロンボクの注釈を書くことです。例えば、 https://binkley.blogspot.co.uk/2014/12/writing-your-own-lombok-annotation.html – Rich