Il mio progetto ha codice come il seguente:concatenamento Null-Safe Operatore
params.stringValue?.trim().replaceAll('aa', 'a')
Ci aspettavamo che se params.stringValue
era nulla, che sia trim()
e replaceAll()
non sarebbe chiamato.
Tuttavia stavamo ottenendo un NullPointerException
su questa riga dicendo che replaceAll()
non può essere chiamato su un oggetto nullo.
Abbiamo dovuto cambiare il codice per essere come questo:
params.stringValue?.trim()?.replaceAll('aa', 'a')
Perché il primo frammento di codice di cui sopra non funziona? È un bug in Groovy che continua a valutare l'espressione dopo che è stato rilevato un null una volta?
Penso che sia una "funzionalità", piuttosto che un bug (!) – Armand