让我们说这是我的课程。我想要除日期以外的所有字段的获取器和设置器。是排除的方法吗?
@Data
public class User {
String first;
String last;
String email;
Date dob;
Boolean active;
}
答案 0 :(得分:3)
我认为这是隐藏的唯一方法:
@Getter(value=AccessLevel.PRIVATE)
@Setter(value=AccessLevel.PRIVATE)
private Date dob;
或者与AccessLevel.NONE
一样好,如Ken Chan的answer建议
因此覆盖了访问级别。但是,这不会对构造函数隐藏。
此外,您还可以使用继承技巧。定义类,如:
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;
}
答案 1 :(得分:3)
好吧,或者更好的方法是使用AccessLevel.NONE
使其完全不生成getter或setter。将不会生成私有获取器或设置器。
@Getter(value=AccessLevel.NONE)
@Setter(value=AccessLevel.NONE)
private Date dob;
答案 2 :(得分:1)
您可以通过使用以下注释来做到这一点:
@Getter(value=AccessLevel.NONE)
@Setter(value=AccessLevel.NONE)
private LocalDate dob;
最好使用LocalDate代替Date。 Date是已弃用的API。
@pirho,您的示例仍会创建getter和setter,但将它们设为私有。