【发布时间】:2019-07-13 21:59:08
【问题描述】:
假设这是我的课。我想要除日期之外的所有字段的获取器和设置器。是一种排除方法吗?
@Data
public class User {
String first;
String last;
String email;
Date dob;
Boolean active;
}
【问题讨论】:
标签: java spring getter-setter lombok
假设这是我的课。我想要除日期之外的所有字段的获取器和设置器。是一种排除方法吗?
@Data
public class User {
String first;
String last;
String email;
Date dob;
Boolean active;
}
【问题讨论】:
标签: java spring getter-setter lombok
我认为这是唯一的隐藏方法:
@Getter(value=AccessLevel.PRIVATE)
@Setter(value=AccessLevel.PRIVATE)
private Date dob;
或者像 Ken Chan 的 answer 建议的 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;
}
【讨论】:
好吧,或者更好的是使用AccessLevel.NONE 完全使其不生成getter 或setter。不会生成私有的 getter 或 setter。
@Getter(value=AccessLevel.NONE)
@Setter(value=AccessLevel.NONE)
private Date dob;
【讨论】:
您可以使用以下注释来做到这一点:
@Getter(value=AccessLevel.NONE)
@Setter(value=AccessLevel.NONE)
private LocalDate dob;
最好使用 LocalDate 而不是 Date。 Date 是一个已弃用的 API。
@pirho,您的示例仍然创建 getter 和 setter,但将它们设为私有。
【讨论】: