Java Lombok@Getter和系列的副本

Java Lombok@Getter和系列的副本,java,collections,lombok,Java,Collections,Lombok,在列表字段上使用@Getter可以很好地工作,但是在尝试升级到Java 8时,我遇到了ConcurrentModificationExceptions,因为Lombok生成的Getter不会执行该字段的副本,如果您希望阻止对实例状态的外部修改,这是必不可少的 有没有办法让Lombok在getters上复制集合,或者我只能自己写?来自文档: 您可以使用@Getter和/或@Setter注释任何字段,让lombok自动生成默认的Getter/Setter。 默认的getter只返回该字段,如果该字段

列表
字段上使用
@Getter
可以很好地工作,但是在尝试升级到Java 8时,我遇到了
ConcurrentModificationException
s,因为Lombok生成的Getter不会执行该字段的副本,如果您希望阻止对实例状态的外部修改,这是必不可少的

有没有办法让Lombok在getters上复制
集合
,或者我只能自己写?

来自文档:

您可以使用@Getter和/或@Setter注释任何字段,让lombok自动生成默认的Getter/Setter。 默认的getter只返回该字段,如果该字段名为foo(如果该字段的类型为boolean,则名为getFoo)。如果字段名为foo,返回void,并接受与字段相同类型的1个参数,则默认setter名为setFoo。它只是将字段设置为该值


由于您需要比默认getter更多的功能,因此必须编写自己的getter。

这不是我想要的答案,但答案是:'(一些lombok注释/配置没有办法做到这一点,对吧?还有一个更近期的讨论:getter不应该复制,它应该包装在
集合中。unmodifiableList
。如果调用方希望自己使用一个可变集合,那么它应该复制一个。这使代码更干净,并且是一个避免重复的约定。)漏洞。