这将安全地返回null,而不会引发任何异常
obj?.prop1?.prop2
在不抛出索引越界异常的情况下,如何才能对集合执行此操作?
myarray[400] //how do I make it return null if myarray.size() < 400
是否有这样的集合运算符?
发布于 2010-12-23 04:12:11
这是所有集合的默认行为,groovy中的数组除外。
assert [1,2,3,4][5] == null
def test = new ArrayList()
assert test[100] == null
assert [1:"one", 2:"two"][3] == null
如果你有一个数组,把它转换成一个列表。
def realArray = new Object[4]
realArray[100] // throws exception
(realArray as List)[100] // null
您可以将字符串列表和映射索引与?
运算符一起使用,方法与处理属性的方式相同:
def myList = [[name: 'foo'], [name: 'bar']]
assert myList[0]?.name == 'foo'
assert myList[1]?.name == 'bar'
assert myList[2]?.name == null
发布于 2018-02-20 22:10:47
您可以改用get():
myarray?.get(400)
https://stackoverflow.com/questions/4512607
复制相似问题