मेरे परियोजना निम्नलिखित की तरह कोड है:श्रृंखलन अशक्त-सुरक्षित ऑपरेटर
params.stringValue?.trim().replaceAll('aa', 'a')
हम उम्मीद है कि अगर params.stringValue
अशक्त था, कि दोनोंtrim()
और replaceAll()
बुलाया नहीं किया जाएगा।
हालांकि हमें इस पंक्ति पर NullPointerException
मिल रहा था और कहा कि replaceAll()
को शून्य ऑब्जेक्ट पर नहीं कहा जा सकता है।
params.stringValue?.trim()?.replaceAll('aa', 'a')
ऊपर पहले कोड स्निपेट क्यों काम नहीं करता:
हम कोड बदलना पड़ा इस तरह होना करने के लिए? क्या यह ग्रोवी में एक बग है कि एक बार एक नल का सामना करने के बाद अभिव्यक्ति का मूल्यांकन करना जारी रहता है?
मुझे लगता है कि यह एक बग (!) की बजाय "फीचर" है – Armand