在龙目岛省略一个Setter/Getter

Der*_*ike 185 java lombok

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

龙目岛如何省略这个领域?

Mic*_*fel 336

您可以将访问级别传递给@Getter@Setter注释.这对于使getter或setter受到保护或私有有用.它也可以用于覆盖默认值.

有了@Data,默认情况下您可以公开访问访问者.您现在可以使用特殊访问级别NONE完全省略访问者,如下所示:

@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private int mySecret;
Run Code Online (Sandbox Code Playgroud)

  • 您的意思是该属性不应显示在构建器中?不,没有什么直接可以做到这一点。请记住,“@Builder”可以放在函数、构造函数以及类上,并且仅提供设置该函数签名中出现的那些属性。 (2认同)

Mar*_*eel 37

根据@Data描述你可以使用:

所有生成的getter和setter都将是公共的.要覆盖访问级别,请使用显式的@Setter和/或@Getter批注对字段或类进行批注.您还可以使用此批注(通过将其与AccessLevel.NONE组合)来完全禁止生成getter和/或setter.


Sat*_*hia 9

使用以下代码从创建 setter 和 getter 中省略/排除键应该使用 inside@Getter@Setter

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