Comment vérifier en Groovy, cet objet est une liste ou d'une collection ou un tableau?
La question est aussi simple que le titre. Comment vérifier en Groovy, cet objet est une liste ou d'une collection ou un tableau? Mais ne peut pas trouver un moyen simple de le vérifier. Des idées?
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas si vous avez besoin de distinguer entre la Collection, Liste et Tableau, ou juste envie de savoir si un objet est tout de ces types. Si ce dernier, vous pouvez utiliser ceci:
Exécuter le code ci-dessus dans le Groovy de la console afin de confirmer qu'il se comporte comme annoncé
Un
List
est unCollection
, de sorte que les contrôles ne sont pas mutuellement exclusives:Si vous êtes à la recherche d'un Groovy, regardez les
in
de l'opérateur. C'est en fait une combinaison deClass.isAssignableFrom(Class<?>)
etClass.isInstance(Object)
ce qui signifie que vous pouvez l'utiliser pour tester les classes ainsi que des objets.De tester si un objet est un tableau peut être délicat. Je recommande @BurtBeckwith de l'approche.
Je l'utilise pour "arrayfy" un objet, si sa déjà une collection puis ce sera le retour une copie, le reste de l'envelopper dans une liste. Si vous n'avez pas besoin de le vérifier lors du traitement, il sera toujours une collection.
object
ici c'est juste le nom d'une variable, peut être n'importe quoi.Suffit d'utiliser l'opérateur instanceof et de vérifier si l'objet est une instance de java.util.Collection
Habituellement, vous voulez vérifier son comportement avec duck-typing.
each
méthode pourObject
de sorte que chaque objet répond àeach
. Par conséquent, cette proposition est défectueux.Object
répondu àeach
. De toute façon, vous voulez vérifier la méthode que vous êtes en train d'aller à l'utiliser, donc si vous êtes en utilisant une autre méthode ce serait ok. Si vous envisagez d'utiliser deseach
puis, malheureusement, ce ne sera pas suffisant.instanceof
?