Вы можете использовать метод get()
или getAt()
, который эквивалентен оператору доступа к индексу массива:
def doesntExist = null
println doesntExist?.getAt('sdfsd')
println doesntExist?.get('sdfsd')
Выход:
null
null
Объяснение
Если вы компилируете код, содержащий:
doesntExist['sdfsd']
и откройте его декомпилированную версию (например, в IntelliJ IDEA), вы увидите, что эта часть компилируется в
DefaultGroovyMethods.getAt(doesntExist, "sdfsd")
Поэтому, если вы хотите использовать нулевой безопасный оператор, вы должны позвонить
doesntExist?.getAt('sdfsd')
непосредственно.