Comment déclarer et utiliser un Ensemble de données de la structure dans groovysh?
J'ai essayé:
groovy:000> Set<String> s = ["a", "b", "c", "c"]
===> [a, b, c]
groovy:000> s
Unknown property: s
Je veux être en mesure de l'utiliser comme un ensemble, mais même si je passe de façon explicite, il la transforme en une liste de tableaux:
groovy:000> joinList(["a", "b", "c", "c"])
ERROR groovy.lang.MissingMethodException:
No signature of method: groovysh_evaluate.joinList() is applicable for argument types: (java.util.ArrayList) values: [[a, b, c, c]]
Possible solutions: joinList(java.util.Set)
OriginalL'auteur reectrix | 2015-01-08
Vous devez vous connecter pour publier un commentaire.
Ce problème se produit uniquement parce que vous êtes à l'aide de l'Groovy Shell pour tester votre code. Je n'utilise pas le Groovy shell beaucoup, mais il semble ignorer les types, tels que
est équivalent à
et que ce dernier n'bien sûr créer un
List
. Si vous exécutez le même code dans la console Groovy au lieu de cela, vous verrez qu'il ne fait créer unSet
D'autres façons de créer un
Set
en Groovy inclureou
oui, je ne sais pas pourquoi le Groovy shell ignore les types comme ça, mais j'ai tendance à utiliser la console à la place de ces types de tests rapides
groovysh n'est pas un REPL
Intéressant. <code>["a", "b", "c", "c"] comme</code> fait mes tests unitaires échouer, mais <code>["a", "b", "c", "c"].toSet()</code> fonctionne très bien. Je suis l'aide de Spock.
Upvoted parce qu'il mentionne
toSet()
- très utile.OriginalL'auteur Dónal
Groovy >= 2.4.0
Réglage
interpreterMode
àtrue
en groovy, shell pardevrait corriger ce problème
Groovy < 2.4.0
L'ajout d'un type de la variable en fait une variable locale qui n'est pas disponible à la coquille de l'environnement.
utiliser comme ci-dessous dans
groovysh
L'ajout d'un type de la variable en fait une variable locale qui n'est pas disponible à la coquille de l'environnement. @Dónal
OriginalL'auteur dmahapatro