我想在Lombok中使用数据类。由于它有大约十几个字段,我用@Data
注释它以生成所有的setter和getter。但是,有一个特殊字段,我不希望实现访问器。
龙目岛如何省略这个字段?
答案 0 :(得分:297)
您可以将访问级别传递给@Getter
和@Setter
注释。这对于使getter或setter受到保护或私有有用。它也可以用来覆盖默认值。
使用@Data
,默认情况下您可以公开访问访问者。您现在可以使用特殊访问级别NONE
来完全省略访问者,如下所示:
@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private int mySecret;
答案 1 :(得分:33)
根据@Data description,你可以使用:
所有生成的getter和setter都将是公共的。要覆盖 访问级别,使用显式的@Setter注释字段或类 和/或@Getter注释。您也可以使用此注释(通过 将它与AccessLevel.NONE相结合以抑制生成getter 和/或一起完成。
答案 2 :(得分:3)
使用下面的代码省略/排除来创建setter和getter。 值键应在@Getter
和@Setter
内部使用。
@Getter(value = AccessLevel.NONE)
@Setter(value = AccessLevel.NONE)
private int mySecret;
Spring boot 2.3 版本,运行良好。
答案 3 :(得分:-3)
如果您将setter和getter设为私有,则将在PMD检查中显示。