Lombok 项目 - 值注释:是否可以抑制 @Getter?
Project Lombok - Value annotation: is it possible to suppress @Getter?
在搜索 Lombok feature-list and in particular the documentation for the Getter/Setter and @Value
注释后,我无法找到任何抑制 @Getter
生成的代码的设置。
In practice, @Value is shorthand for: final @ToString @EqualsAndHashCode @AllArgsConstructor @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) @Getter
这很重要,因为我不想泄露对本身可变对象的引用。
有效 Java 在 "Item 39: Make defensive copies when needed" 中引用了此类问题。 @Wither
似乎可以通过制作实际的防御副本来部分解决这个问题,但我想尽可能避免泄漏属性,无论它们是可变的。
虽然可以推出自己的 @Value
annotation that omits the @Getter
我当然不想这样做,因为如果这样的设置已经存在,那会给代码库增加不必要的复杂性。
您可以使用:
@Value
@Getter(AccessLevel.NONE)
AccessLevel.NONE
指示 Lombok 不生成吸气剂。这是你现在能做的最好的事情了。
在搜索 Lombok feature-list and in particular the documentation for the Getter/Setter and @Value
注释后,我无法找到任何抑制 @Getter
生成的代码的设置。
In practice, @Value is shorthand for: final @ToString @EqualsAndHashCode @AllArgsConstructor @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) @Getter
这很重要,因为我不想泄露对本身可变对象的引用。
有效 Java 在 "Item 39: Make defensive copies when needed" 中引用了此类问题。 @Wither
似乎可以通过制作实际的防御副本来部分解决这个问题,但我想尽可能避免泄漏属性,无论它们是可变的。
虽然可以推出自己的 @Value
annotation that omits the @Getter
我当然不想这样做,因为如果这样的设置已经存在,那会给代码库增加不必要的复杂性。
您可以使用:
@Value
@Getter(AccessLevel.NONE)
AccessLevel.NONE
指示 Lombok 不生成吸气剂。这是你现在能做的最好的事情了。