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

Fil*_*erg 4 java lombok

在搜索Lombok功能列表,特别是Getter/Setter@Value注释的文档之后,我无法找到任何抑制生成代码的设置@Getter.

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

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

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

虽然可以滚动一个自己的@Value注释,省略了@Getter我的意思,当然,如果这样的设置已经存在,那么就不喜欢为代码库添加不必要的复杂性.

Roe*_*ker 6

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

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