我可以从龙目岛@Data注释中排除字段吗?
2022-09-03 04:22:59
假设这是我的班级。我想要除日期之外的所有字段的 getter 和 setter。这是一种排除的方法吗?
@Data
public class User {
String first;
String last;
String email;
Date dob;
Boolean active;
}
假设这是我的班级。我想要除日期之外的所有字段的 getter 和 setter。这是一种排除的方法吗?
@Data
public class User {
String first;
String last;
String email;
Date dob;
Boolean active;
}
我认为这是隐藏的唯一方法:
@Getter(value=AccessLevel.PRIVATE)
@Setter(value=AccessLevel.PRIVATE)
private Date dob;
或者也许更好,就像Ken Chan的答案所暗示的那样AccessLevel.NONE
因此覆盖了访问级别。但是,这并不能对构造函数隐藏它。
你也可以用继承来做把戏。定义类,如下所示:
public class Base {
// @Getter if you want
private Date dob;
}
并让你扩展它:User
@Data
public class User extends Base {
private String first;
private String last;
private String email;
private Boolean active;
}
好吧,或者更好的是,用来完全使它不生成 getter 或 setter。不会生成私有 getter 或 setter。AccessLevel.NONE
@Getter(value=AccessLevel.NONE)
@Setter(value=AccessLevel.NONE)
private Date dob;