web-dev-qa-db-fra.com

Groovy/Grails comment déterminer un type de données?

Quel est le meilleur moyen 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. 

153
Jack BeNimble

Pour déterminer la classe d'un objet, appelez simplement:

someObject.getClass()

Vous pouvez abréger ceci en someObject.class dans la plupart des cas. Cependant, si vous utilisez ceci sur une Map, il tentera de récupérer la valeur avec la clé 'class'. Pour cette raison, j'utilise toujours getClass() 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 (Date, par exemple), utilisez:

(somObject instanceof Date)

ou pour vérifier si la classe d'un objet est exactement une classe particulière (et non une sous-classe de celle-ci), utilisez:

(somObject.getClass() == Date)
219
Dónal

Un moyen simple de vérifier le type d'objet: 

somObject in Date

Peut être appliqué aussi aux interfaces.

29
Michal Z m u d a

Juste pour ajouter une autre option à la réponse de Don, vous pouvez également utiliser la bonne vieille méthode Java.lang.Object.getClass().

3
Pops

Vous pouvez utiliser l’opérateur d’appartenance isCase (), ce qui est un autre moyen génial:

assert Date.isCase(new Date())
0
bitsnaps