列表可以为空。我想这样做:
def value = "";
def list = getList()
if (!list.isEmpty()){
value = list.first().foo
}
例如我发现了这种方式:
assert ( [].find()?.foo?:"empty" ) == "empty"
assert ([[foo:"notEmpty1"], [foo:"notEmpty2"]].find()?.foo?:"empty") == "notEmpty1"
有更好的方法吗?
谢谢! :)
编辑:
我使用[0]
assert ( [][0]?.foo?:"empty" ) == "empty"
assert ([[foo:"notEmpty1"], [foo:"notEmpty2"]][0]?.foo?:"empty") == "notEmpty1"
答案 0 :(得分:0)
如果是List
,请尝试
if (!list?.isEmpty()){
list.get(0);
}
如果list元素不能为null,则不需要?
如果是Collection,有几种形式可以检索它。看一下这篇文章
答案 1 :(得分:0)
我从推特上得到了答案。声明:
def value = "";
def list = getList()
if (!list.isEmpty()){
value = list.first().foo
}
可写:
def value = list[0]?.foo?:""
如果列表可以包含空值,则可以使用 find