Подтвердить что ты не робот

Есть ли лучший способ записать эту нулевую проверку и непустую проверку в groovy?

Мне нужно выполнить проверку null/empty на некотором коде, прежде чем выполнить некоторую логику. У меня есть пункт ниже, потому что я чувствую, что !members?.empty неверен.

Есть ли более эффективный способ написать следующее?

if (members && !members.empty) {
    // Some Work
}
4b9b3361

Ответ 1

Существует действительно Groovier Way.

if(members){
    //Some work
}

делает все, если members - это коллекция. Нулевая проверка, а также пустая проверка (пустые коллекции привязаны к false). Приветствуем Groovy Правда.:)

Ответ 2

!members.find()

Я думаю, что сейчас лучший способ решить эту проблему - код выше. Работает с Groovy 1.8.1 http://docs.groovy-lang.org/docs/next/html/groovy-jdk/java/util/Collection.html#find(). Примеры:

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()