在龙目岛省略一个Setter / Getter

时间:2011-11-03 11:28:32

标签: java lombok

我想在Lombok中使用数据类。由于它有大约十几个字段,我用@Data注释它以生成所有的setter和getter。但是,有一个特殊字段,我不希望实现访问器。

龙目岛如何省略这个字段?

4 个答案:

答案 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检查中显示。