我有一个课,我继承了一些字段,其中包括我的id字段和那些我对象的区别.我使用lombok生成我的@EqualsAndHashCode和@ToString,但只想使用我的超类的版本,并排除我班级中的所有字段.我想知道是否有办法做到这一点,不使用排除,然后添加所有字段.
我的课程:
@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>();
}
Run Code Online (Sandbox Code Playgroud)
在这里,我将获得ToString,Equals和HashCode的组织和技能.
为了排除它们,我可以使用:
@ToString(callSuper = true, exclude = { "organisation", "skills" })
Run Code Online (Sandbox Code Playgroud)
然而,因为我有更多的字段而不是示例,并且将来可能会有更多的字段,我宁愿我能排除除了超级类之外的所有字段.
我还可以添加一个字段of = {}.
有没有更好的方法来实现这一目标?