首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Groovy中,有没有类似于安全导航操作符的安全索引到Collection中的方法?

在Groovy中,有没有类似于安全导航操作符的安全索引到Collection中的方法?
EN

Stack Overflow用户
提问于 2010-12-23 02:53:27
回答 2查看 13.9K关注 0票数 26

这将安全地返回null,而不会引发任何异常

代码语言:javascript
复制
obj?.prop1?.prop2

在不抛出索引越界异常的情况下,如何才能对集合执行此操作?

代码语言:javascript
复制
myarray[400]  //how do I make it return null if myarray.size() < 400 

是否有这样的集合运算符?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-23 04:12:11

这是所有集合的默认行为,groovy中的数组除外。

代码语言:javascript
复制
assert [1,2,3,4][5] == null
def test = new ArrayList()
assert test[100] == null
assert [1:"one", 2:"two"][3] == null

如果你有一个数组,把它转换成一个列表。

代码语言:javascript
复制
def realArray = new Object[4]
realArray[100] // throws exception
(realArray as List)[100] // null

您可以将字符串列表和映射索引与?运算符一起使用,方法与处理属性的方式相同:

代码语言:javascript
复制
def myList = [[name: 'foo'], [name: 'bar']]
assert myList[0]?.name == 'foo'
assert myList[1]?.name == 'bar'
assert myList[2]?.name == null
票数 46
EN

Stack Overflow用户

发布于 2018-02-20 22:10:47

您可以改用get():

代码语言:javascript
复制
myarray?.get(400)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4512607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档