2016-01-04 15 views
5

L'utilizzo di @Getter su un campo List funziona correttamente, ma nel tentativo di eseguire l'aggiornamento a Java 8 viene rilevato ConcurrentModificationException s perché il getter generato da Lombok non esegue una copia del campo, che è essenziale si desidera impedire la modifica esterna dello stato dell'istanza.Lombok @ Getter e copie delle collezioni

Qualche idea su come posso fare in modo che Lombok copi lo Collection su getter o mi limiti a scrivere il mio?

risposta

3

Da @Getter and @Setter documentazione:

È possibile annotare qualsiasi campo con @Getter e/o @Setter, di lasciare Lombok generare automaticamente il default getter/setter. Un getter predefinito restituisce semplicemente il campo ed è denominato getFoo se il campo è chiamato foo (o isFoo se il tipo del campo è booleano). Un setter predefinito è denominato setFoo se il campo è chiamato foo, restituisce void e prende 1 parametro dello stesso tipo del campo. Semplicemente imposta il campo su questo valore.

Dal momento che si desidera più funzionalità, quindi il getter predefinito dovrà scrivere il proprio.

+0

Non è la risposta che voleva, ma la risposta comunque: '( –

+0

Non v'è alcun modo per farlo con un po' di Lombok annotazione/config destra – Ignacio

+0

No. Vedi anche:? Https://github.com/rzwitserloot/lombok/ problemi/420 – mpkorstanje