コンパイル時に (APT を使用して) equals / hashcode / toString メソッドを生成している人々をどこかで読んだことがあると思います。ウェブ上でそのようなものを見つけることができませんでした(私はそれを夢見ていたかもしれませんか?) ...
それはそのように行うことができます:
public class Person {
@Id @GeneratedValue private Integer id;
@Identity private String firstName, lastName;
@Identity private Date dateOfBirth;
//...
}
エンティティの場合 (id などの一部のフィールドを除外したい)。
または、scala ケース クラス、つまり値オブジェクトのように:
@ValueObject
public class Color {
private int red, green, blue;
}
ファイルが読みやすくなり、書きやすくなるだけでなく、すべての属性が equals / hashcode の一部であることを確認するのにも役立ちます (後で別の属性を追加する場合に備えて、それに応じてメソッドを更新する必要はありません)。
APT は IDE で十分にサポートされていないと聞きましたが、それは大きな問題ではないと思います。結局のところ、テストは主に継続的インテグレーション サーバーによって実行されます。
これがすでに行われている場合、そうでない場合は理由はありますか? ありがとう