项目龙目岛 - 价值注释:是否有可能压制@Getter?

时间:2016-12-20 13:03:37

标签: java lombok

在搜索this help page,特别是Lombok feature-listGetter/Setter注释的文档后,我找不到任何设置来抑制@Getter生成的代码

  

在实践中,@ Value是简写:final @ToString @EqualsAndHashCode @AllArgsConstructor @FieldDefaults(makeFinal = true,level = AccessLevel.PRIVATE)@Getter

这很重要,因为我不想泄漏对本身可变的对象的引用。

有效Java在“第39项:在需要时制作防御性副本”中引用此类问题。似乎@Value可以通过制作实际的防御副本来部分解决这个问题,但我想避免泄露属性,无论它们是多么可变。

虽然可以滚动一个自己的@Wither注释,但忽略了@Value,我当然不愿意这样做,如果这样的设置已经存在,会给代码库增加不必要的复杂性。

1 个答案:

答案 0 :(得分:5)

您可以使用: @Value @Getter(AccessLevel.NONE)

AccessLevel.NONE指示Lombok不生成getter。这是你现在能做的最好的事情。