Je suis nouveau sur groovy (j'ai travaillé sur Java), j'essaye d'écrire des cas de test en utilisant le framework Spock. J'ai besoin du Java converti en extrait groovy en utilisant "chaque boucle"
List<String> myList = Arrays.asList("Hello", "World!", "How", "Are", "You");
for( String myObj : myList){
if(myObj==null) {
continue; // need to convert this part in groovy using each loop
}
System.out.println("My Object is "+ myObj);
}
Extrait Groovy:
def myObj = ["Hello", "World!", "How", "Are", "You"]
myList.each{ myObj->
if(myObj==null){
//here I need to continue
}
println("My Object is " + myObj)
}
Soit return
, car la fermeture est une méthode qui est appelée avec chaque élément comme paramètre comme
def myObj = ["Hello", "World!", "How", "Are", "You"]
myList.each{ myObj->
if(myObj==null){
return
}
println("My Object is " + myObj)
}
Ou changez votre modèle en
def myObj = ["Hello", "World!", "How", "Are", "You"]
myList.each{ myObj->
if(myObj!=null){
println("My Object is " + myObj)
}
}
Ou utilisez un findAll
avant pour filtrer les objets null
def myList = ["Hello", "World!", "How", "Are", null, "You"]
myList.findAll { it != null }.each{ myObj->
println("My Object is " + myObj)
}
vous pouvez soit utiliser une boucle for
standard avec continue
:
for( String myObj in myList ){
if( something ) continue
doTheRest()
}
ou utilisez return
dans la fermeture de each
:
myList.each{ myObj->
if( something ) return
doTheRest()
}
Vous pouvez également saisir votre instruction if
uniquement si l'objet n'est pas null
.
def myObj = ["Hello", "World!", "How", "Are", "You"]
myList.each{
myObj->
if(myObj!=null){
println("My Object is " + myObj)
}
}