我可以从 lomboks @Data 注释中排除字段吗?

DIB*_*its 10 java spring getter-setter lombok

让我们说这是我的班级。我想要除日期之外的所有字段的 getter 和 setter。有办法排除吗?

@Data
public class User {
    String first;
    String last;
    String email;
    Date dob;
    Boolean active;
}
Run Code Online (Sandbox Code Playgroud)

Ken*_*han 13

好吧,或者更好地使用AccessLevel.NONE它来完全使它不生成 getter 或 setter。不会生成私有 getter 或 setter。

@Getter(value=AccessLevel.NONE)
@Setter(value=AccessLevel.NONE)
private Date dob;
Run Code Online (Sandbox Code Playgroud)


pir*_*rho 12

我认为这是隐藏的唯一方法:

@Getter(value=AccessLevel.PRIVATE)
@Setter(value=AccessLevel.PRIVATE)
private Date dob;
Run Code Online (Sandbox Code Playgroud)

或者AccessLevel.NONE像 Ken Chan 的回答所暗示的那样更好

所以覆盖访问级别。然而,这并没有对构造函数隐藏它。

你也可以用继承来制作技巧。定义类,如:

public class Base {
    // @Getter if you want
    private Date dob;
}
Run Code Online (Sandbox Code Playgroud)

并让您User扩展它:

@Data
public class User extends Base {
    private String first;
    private String last;
    private String email;
    private Boolean active;
}
Run Code Online (Sandbox Code Playgroud)