tomar - En Groovy, ¿hay alguna manera de indexar de forma segura en una Colección similar al operador de navegación segura?
reflexion de navegar por internet de forma segura (1)
Esto devolverá nulo de forma segura sin tirar ninguna excepción
obj?.prop1?.prop2
¿Cómo puedo hacer eso para las colecciones, donde no lanzará una excepción de índice fuera de límites?
myarray[400] //how do I make it return null if myarray.size() < 400
¿Existe un operador de colecciones?
Ese es el comportamiento predeterminado de todas las colecciones, excepto las matrices de groovy.
assert [1,2,3,4][5] == null
def test = new ArrayList()
assert test[100] == null
assert [1:"one", 2:"two"][3] == null
Si tienes una matriz, ejecútala a una lista.
def realArray = new Object[4]
realArray[100] // throws exception
(realArray as List)[100] // null
Puede enhebrar una lista y asignar índices junto con ?
operador de la misma manera que con las propiedades:
def myList = [[name: ''foo''], [name: ''bar'']]
assert myList[0]?.name == ''foo''
assert myList[1]?.name == ''bar''
assert myList[2]?.name == null