Quelle est la meilleure façon de déterminer le type de données dans groovy?
J'aimerais formater la sortie différemment s'il s'agit d'une date, etc.
Pour déterminer la classe d'un objet, appelez simplement:
someObject.getClass()
Vous pouvez abréger cela en someObject.class
dans la plupart des cas. Cependant, si vous l'utilisez sur un, Map
il essaiera de récupérer la valeur avec la clé 'class'. Pour cette raison, j'utilise toujoursgetClass()
même si c'est un peu plus long.
Si vous voulez vérifier si un objet implémente une interface particulière ou étend une classe particulière (par exemple Date), utilisez:
(somObject instanceof Date)
ou pour vérifier si la classe d'un objet est exactement une classe particulière (pas une sous-classe de celle-ci), utilisez:
(somObject.getClass() == Date)
instanceof
est idéal pour le filtrage basé sur l'interface.Map
instancedef test = {} println test.getClass()
classe Script1 $ _run_closure1 ??Façon simple et groovy de vérifier le type d'objet:
Peut être appliqué également aux interfaces.
la source
Juste pour ajouter une autre option à la réponse de Dónal, vous pouvez toujours utiliser la bonne vieille
java.lang.Object.getClass()
méthode.la source
Vous pouvez utiliser l'opérateur d'appartenance isCase () qui est une autre façon groovy:
la source
somObject instanceof Date
devrait être
somObject instanceOf Date
la source
instanceof
devraient tous être en minuscules.