unam tomar sobre seguridad segura reflexiones reflexion prepa por pasos para navegar medidas linea introduccion internet importancia forma conclusión groovy

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