我需要对集合执行null或空检查;我认为!members?.empty是不正确的。有没有更好的方法来写下面的内容?
!members?.empty
if (members && !members.empty) { // Some Work }
r8uurelv1#
的确有一种更好的方式。
if (members) { //Some work }
如果members是一个集合,则执行所有操作。空值检查和空值检查(空集合被强制为false)。Groovy Truth万岁。:)
members
false
vbopmzt12#
FYI这种代码的作品(你可以发现它丑陋,这是你的权利:)):
def list = null list.each { println it } soSomething()
换句话说,此代码具有空值/空检查两者都有无用:
if (members && !members.empty) { members.each { doAnotherThing it } } def doAnotherThing(def member) { // Some work }
laximzn53#
!members.find()
我认为现在解决这个问题的最好方法是上面的代码。它从Groovy 1.8.1开始工作。例如:
def lst1 = [] assert !lst1.find() def lst2 = [null] assert !lst2.find() def lst3 = [null,2,null] assert lst3.find() def lst4 = [null,null,null] assert !lst4.find() def lst5 = [null, 0, 0.0, false, '', [], 42, 43] assert lst5.find() == 42 def lst6 = null; assert !lst6.find()
3条答案
按热度按时间r8uurelv1#
的确有一种更好的方式。
如果
members
是一个集合,则执行所有操作。空值检查和空值检查(空集合被强制为false
)。Groovy Truth万岁。:)vbopmzt12#
FYI这种代码的作品(你可以发现它丑陋,这是你的权利:)):
换句话说,此代码具有空值/空检查两者都有无用:
laximzn53#
我认为现在解决这个问题的最好方法是上面的代码。它从Groovy 1.8.1开始工作。例如: