在搜索this help page,特别是Lombok feature-list和Getter/Setter注释的文档后,我找不到任何设置来抑制@Getter
生成的代码
在实践中,@ Value是简写:final @ToString @EqualsAndHashCode @AllArgsConstructor @FieldDefaults(makeFinal = true,level = AccessLevel.PRIVATE)@Getter
这很重要,因为我不想泄漏对本身可变的对象的引用。
有效Java在“第39项:在需要时制作防御性副本”中引用此类问题。似乎@Value
可以通过制作实际的防御副本来部分解决这个问题,但我想避免泄露属性,无论它们是多么可变。
虽然可以滚动一个自己的@Wither
注释,但忽略了@Value
,我当然不愿意这样做,如果这样的设置已经存在,会给代码库增加不必要的复杂性。
答案 0 :(得分:5)
您可以使用:
@Value
@Getter(AccessLevel.NONE)
AccessLevel.NONE
指示Lombok不生成getter。这是你现在能做的最好的事情。