ボイラープレートコードを取り除くプロジェクトロンボクの機能を本当に楽しんでいます。 私のシニアは、ロンボクが定型文を減らすためにリフレクションを使用しているように思っています。 私の質問は、プロジェクトロンボクを使用するために問題がありますか?ロンボクは性能を低下させることができますか?
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. 精度が低下する可能性はありますか?
- 2. .netサーバコントロールの性能低下
- 3. これはなぜオーディオ品質を低下させますか?
- 4. 静的コンストラクタは静的メソッドへのアクセスのパフォーマンスを低下させることができますか?
- 5. MVVM Lightツールキットでパフォーマンスが低下することはありませんか?
- 6. は、MongoDBで生産性を低下させるアドホックなクエリ/アップデートですか?
- 7. .NET 4 Parallel.ForEachとPLINQ:スレッドプールを圧倒してアプリのパフォーマンスを低下させることはできますか?
- 8. ジャクソンとロンボクが一緒に働くことはできません
- 9. いくつかの機能プログラミング構成でデバッグ性が低下しますか?
- 10. 精度が低下する可能性があります(ただし、そうではありません)
- 11. レール3.1のマウント可能なエンジンアプリでは、すべてのcssとjsがリクエストごとにロードされます。パフォーマンスを低下させたり、効率を低下させたりすることはありませんか?
- 12. ImageMagickでは、あるファイルサイズ以下になるまで、JPEG画像の品質をどのように低下させることができますか?
- 13. 大きなクワッドを融合させたときにパフォーマンスが低下する
- 14. 力を掛けると精度が低下する可能性がありますか?
- 15. MySqlsのパフォーマンスを低下させる原因は何ですか?
- 16. Django:多くのシグナルがパフォーマンスを低下させますか?
- 17. SPARK:DRIVER MEMORYの数を増やすとパフォーマンスが低下する可能性がありますか?
- 18. ラズベリーの低性能と低ネットワーク接続
- 19. SQLはSQL Server 2008のセキュリティを低下させますか
- 20. #defineはパフォーマンスを低下させますか?
- 21. パーティショニングはクエリのパフォーマンスを低下させますか?
- 22. .pdbsはリリースアプリケーションの速度を低下させますか?
- 23. このパフォーマンスが低下するのはなぜですか?
- 24. MSSQL:last_user_updateはインデックスのパフォーマンスが低下することを意味しますか?
- 25. .NET:ThreadStaticとlock {}。 ThreadStaticAttributeがパフォーマンスを低下させる理由
- 26. SQLクエリのUnicode文字が原因でDBのパフォーマンスが低下する可能性がありますか?
- 27. 1つのSELECTでOracle Databaseのパフォーマンスが大幅に低下する可能性はありますか?
- 28. Cocos2d。火災(弾丸)の迅速性(速度)を低下させるか?
- 29. Slickテストで診断のデバッグ情報が表示され、パフォーマンスが低下することはありますか?
- 30. ウェブアプリケーションの32ビットのみのDLLでパフォーマンスが低下する可能性がありますか?
右ですが、これはかなり正常です。 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