【发布时间】:2011-12-21 02:26:55
【问题描述】:
我想在 Lombok 中使用数据类。由于它有大约十几个字段,我用@Data 对其进行了注释,以便生成所有的setter 和getter。但是,有一个特殊字段我不希望实现访问器。
Lombok 是如何省略这个字段的?
【问题讨论】:
我想在 Lombok 中使用数据类。由于它有大约十几个字段,我用@Data 对其进行了注释,以便生成所有的setter 和getter。但是,有一个特殊字段我不希望实现访问器。
Lombok 是如何省略这个字段的?
【问题讨论】:
使用以下代码省略/排除 创建 setter 和 getter。 value 键应在@Getter 和@Setter 内使用。
@Getter(value = AccessLevel.NONE)
@Setter(value = AccessLevel.NONE)
private String mySecret;
【讨论】:
根据@Data description可以使用:
所有生成的 getter 和 setter 都是公开的。覆盖 访问级别,使用显式 @Setter 注释字段或类 和/或 @Getter 注释。您也可以使用此注释(通过 将它与 AccessLevel.NONE 结合使用以抑制生成 getter 和/或二传手。
【讨论】:
您可以将访问级别传递给@Getter 和@Setter 注释。这对于使 getter 或 setter 受保护或私有很有用。它也可以用来覆盖默认值。
使用@Data,默认情况下您可以公开访问访问器。您现在可以使用特殊的访问级别 NONE 来完全省略访问器,如下所示:
@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
private int mySecret;
【讨论】:
@Builder 可以放在函数和构造函数以及类上,并且只提供设置该函数签名中出现的那些属性。
AccessLevel.NONE 将被排除在外。