ボイラープレートコードを取り除くプロジェクトロンボクの機能を本当に楽しんでいます。 私のシニアは、ロンボクが定型文を減らすためにリフレクションを使用しているように思っています。 私の質問は、プロジェクトロンボクを使用するために問題がありますか?ロンボクは性能を低下させることができますか?
12
A
答えて
19
ロンボクは、実行時に反射を使用しません。これは、コンパイラの内部にフックし、コンパイル時にクラスにコードを追加します。コンパイル時には、コンパイルが正常に行われます。
6
@chrylis回答は正確ですが、オブジェクトグラフ(@Data
および@ToString
注釈)には注意してください。
@Data
public class A {
private B b;
}
@Data
public class B {
private A a;
}
ロンボクは無限の再帰を使ってtoStringを作成します。 のようなものを@ToString(exclude = {"a"})
のクラスBに入れてください。
関連する問題
- 1. document.addEventListener( "Mousemove")はWEBGLのパフォーマンスを低下させることができますか?
- 2. 精度が低下する可能性はありますか?
- 3. .netサーバコントロールの性能低下
- 4. これはなぜオーディオ品質を低下させますか?
- 5. 小数点以下の桁数を使用することでPerl 6の性能が低下する
- 6. 静的コンストラクタは静的メソッドへのアクセスのパフォーマンスを低下させることができますか?
- 7. MVVM Lightツールキットでパフォーマンスが低下することはありませんか?
- 8. は、MongoDBで生産性を低下させるアドホックなクエリ/アップデートですか?
- 9. .NET 4 Parallel.ForEachとPLINQ:スレッドプールを圧倒してアプリのパフォーマンスを低下させることはできますか?
- 10. いくつかの機能プログラミング構成でデバッグ性が低下しますか?
- 11. 精度が低下する可能性があります(ただし、そうではありません)
- 12. ジャクソンとロンボクが一緒に働くことはできません
- 13. レール3.1のマウント可能なエンジンアプリでは、すべてのcssとjsがリクエストごとにロードされます。パフォーマンスを低下させたり、効率を低下させたりすることはありませんか?
- 14. ロンボクは.getConstructor()と互換性がありますか?
- 15. ImageMagickでは、あるファイルサイズ以下になるまで、JPEG画像の品質をどのように低下させることができますか?
- 16. 並行性と並行性の低下
- 17. 大きなクワッドを融合させたときにパフォーマンスが低下する
- 18. MySqlsのパフォーマンスを低下させる原因は何ですか?
- 19. 力を掛けると精度が低下する可能性がありますか?
- 20. ノードjsパフォーマンスをどのように低下させることができるか:Req/sec
- 21. Django:多くのシグナルがパフォーマンスを低下させますか?
- 22. SPARK:DRIVER MEMORYの数を増やすとパフォーマンスが低下する可能性がありますか?
- 23. ラズベリーの低性能と低ネットワーク接続
- 24. #defineはパフォーマンスを低下させますか?
- 25. .pdbsはリリースアプリケーションの速度を低下させますか?
- 26. {sk-learn} Select-K-Bestプルーニングはパフォーマンスを低下させますか?
- 27. パーティショニングはクエリのパフォーマンスを低下させますか?
- 28. SQLはSQL Server 2008のセキュリティを低下させますか
- 29. log.debugはパフォーマンスを低下させますか
- 30. このパフォーマンスが低下するのはなぜですか?
右ですが、これはかなり正常です。 JavaとGuavaのコレクションは同じように動作し、 'Arrays.toString(Object)'も同様に動作します。すべての 'toString'実装を生成しないので、ロンボクができることはほとんどありません。 – maaartinus
しかし、サンプルにはコレクションがありません。デフォルトのtoString結果は "[email protected]"のようになります。だから再帰はありません。さらに@Dataのlombokアノテーションは、メソッドhashCodeとequalsも非効率的に実装する可能性があります。 PS 私はロンボクに満足していますが、まだそれを使用することをお勧めします – sibnick
いいえ、コレクションはありませんが、あなたは手書きの 'toString'でいくつかのオブジェクトを持つかもしれません。実装によっては、フィールドを除外するかどうかを指定する必要があります。 Lombokは 'ThreadLocal'にすべての 'toString'呼び出しを記録することでそれを処理できますが、これはすべての呼び出しを遅くします。それは便利な機能かもしれませんが、誰もそれを求めませんでした。なぜ効率が悪い 'hashCode' /' equals'ですか?そのため、Javaはリストのような方法で配列を扱いますか? PS:私はロンボクにとても満足しています(私はそれをJava 8の機能よりも重視しています)。 –
maaartinus