Lombok @Getter和收藏品的副本

时间:2016-01-04 11:18:51

标签: java collections lombok

@Getter字段上使用List可以正常工作,但在尝试升级到Java 8时遇到ConcurrentModificationException,因为Lombok生成的getter不执行该字段的副本,如果您希望防止外部修改实例的状态,这是必不可少的。

任何想法如何让Lombok复制Collection在getter上,或者我只限于自己编写?

1 个答案:

答案 0 :(得分:6)

来自@Getter and @Setter文档:

  

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

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