私はいくつかのフィールドを継承するクラスを持っています。その中には、私のIDフィールドとオブジェクトの違いがあります。 私は@EqualsAndHashCodeと@ToStringを生成するためにlombokを使用していますが、スーパークラスのバージョンを使用したいだけで、クラスのすべてのフィールドを除外します。 除外を使用せずにすべてのフィールドを追加する方法があるのだろうかと思います。@EqualsAndHashCodeと@ToStringでcallsuperを使用するほうがいいですか?
私のクラス:
@EqualsAndHashCode(of = { "id" })
@ToString(of = { "id", "email", "name" })
@Data
public abstract class Resource {
@Id
private Integer id;
private String name;
private String email;
}
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Data
public class Employee extends Resource {
private Organisation organisation;
private List<Skill> skills = new ArrayList<Skill>();
}
ここで私は、私のToStringメソッドでは、組織やスキルを取得等しいとhashCodeます。私は使用することができ、それらを除外する
:
@ToString(callSuper = true, exclude = { "organisation", "skills" })
私は例より多くのフィールドがあり、将来的にはより多くをそこに来るかもしれないと私はすべてのものを除いて除外することができればしかし、私は好みます私のスーパークラス。
of = {}
で1つのフィールドを追加することもできます。
これを達成するための方法はありますか?
私は長い時間でlombockを使用していないと思いますので、
を書くことができます。あなたは従業員クラスから注釈を削除することができます。あなたのクラスにはequlasとtoStringはなく、superは自動的に呼び出されます –
これは本当ですが、私はデータを削除して '@ Getter'と' @Setter '代わりに、それは主要な目標であるよりきれいなビューを提供します:) 乾杯 – Larvalis