プロジェクト・ロンボク vs.Eclipse テンプレート / コード生成
-
26-09-2019 - |
質問
する プロジェクト・ロンボク Eclipse でのコード テンプレート/コード生成と比較して利点はありますか?(.jar を含めること以外に) 欠点はありますか?
解決
ロンボクの利点の一つは、あなたが言う、とクラス、@Data注釈を注釈を付けた後は、あなたが変更を加えたときに、コードを再生成する必要はありませんということです。新しいフィールドを追加した場合、@Dataは自動的イコール、ハッシュコードとのtoStringメソッドにそのフィールドが含まれます。あなたは、Eclipseの生成されたメソッドを使用するときに手動で変更を加える必要があると思います。時間のいくつかは、あなたが手動制御を好むかもしれませんが、ほとんどの場合のために、私はありません期待しています。
他のヒント
はロンボクの利点は、コードが実際に存在しないことである - すなわち、クラスは、はるかに読み取り可能であり、雑然とされていない
利点:
- とても使いやすい
クラスは非常にクリーンになり (「ボイラープレート コードなし」)、特に 'struct' のような内部クラスは最小限に縮小されます。
@Data private class AttrValue { private String attribute; private MyType value; }
これにより、ゲッターとセッターの両方、toString()、および両方の変数を含む正しい hash()/equals() メソッドが作成されます。のバリアント
@Value
不変の構造体を作成します (セッターなし、すべてのフィールドが最終的)。- フィールド (getter、setter、toString、hash、equals) を変更するときにコードを生成/削除する必要はありません。
- 手作業でコーディングされたメソッドと干渉しない:必要に応じて、独自のセッターをクラスに追加するだけです。Lombok はこれをスキップし、他のすべてを生成します
短所:
- 名前のリファクタリングはまだありません:名前を変更する
value
上記は(まだ)名前を変更しませんgetValue()
そしてsetValue()
- 日食の速度がわずかに遅くなる可能性があります
toString
出力は、たとえば Apache Commons の ToStringBuilder ほど良くありません。
思い浮かぶ人はほとんどいません。
- アノテーションに基づいているため、Java5 以前のレガシープロジェクトには適していません(デロンボク島 助けられる)。実際には、javac v1.6 コンパイラを使用する必要があります。
- まだ限界がある 複数のコンストラクターについて
ただし、依存関係の問題を見逃してはなりませんが、質問からは除外されています。
Eclipse EMF は、Lombock がまだサポートしていない非常に便利な機能をいくつか提供します。
- インスタンスの変更に関する情報を受け取るための強力な通知メカニズム
- Java リフレクションのない汎用 API。型への強い参照を使用せずにインスタンスにアクセスして変更する
- コマンドおよび API ベースの編集
- モデル間の相互参照:モデル ツリーを作成してロードすると、EMF は相互参照用のプロキシを作成することによってロードを処理します。これによりメモリが節約され、巨大なドメイン ツリーのパフォーマンスが向上します。
- そしてさらに...