web-dev-qa-db-fra.com

Existe-t-il un meilleur moyen d'écrire ce contrôle nul et un contrôle non vide dans groovy?

J'ai besoin d'effectuer une vérification null/empty sur du code, avant d'effectuer une certaine logique. J'ai l'article ci-dessous, parce que je sens que !members?.empty n'est pas correct.

Y a-t-il une manière plus groovier d'écrire ce qui suit?

if (members && !members.empty) {
    // Some Work
}
77
Jay Bose

Il y a en effet une manière de Groovier.

if(members){
    //Some work
}

fait tout si members est une collection. Contrôle nul et contrôle vide (les collections vides sont contraintes à false). Salut vérité groovy . :)

160
dmahapatro
!members.find()

Je pense maintenant que la meilleure façon de résoudre ce problème est d'utiliser le code ci-dessus. Cela fonctionne depuis Groovy 1.8.1 http://docs.groovy-lang.org/docs/next/html/groovy-jdk/Java/util/Collection.html#find () . Exemples:

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