Was ist der beste Weg, um den Datentyp in Groovy zu bestimmen?
Ich möchte die Ausgabe anders formatieren, wenn es sich um ein Datum usw. handelt.
Um die Klasse eines Objekts zu bestimmen, rufen Sie einfach auf:
someObject.getClass()
Sie können dies someObject.class
in den meisten Fällen abkürzen . Wenn Sie dies jedoch für a verwenden Map
, wird versucht, den Wert mit dem Schlüssel 'class' abzurufen. Aus diesem Grund benutze ich immer getClass()
, obwohl es etwas länger ist.
Wenn Sie überprüfen möchten, ob ein Objekt eine bestimmte Schnittstelle implementiert oder eine bestimmte Klasse (z. B. Datum) erweitert, verwenden Sie:
(somObject instanceof Date)
oder um zu überprüfen, ob die Klasse eines Objekts genau eine bestimmte Klasse ist (keine Unterklasse davon), verwenden Sie:
(somObject.getClass() == Date)
instanceof
eignet sich hervorragend zum Filtern basierend auf der Schnittstelle.Map
Instanzdef test = {} println test.getClass()
Klasse Script1 $ _run_closure1 ??Einfache, gute Möglichkeit, den Objekttyp zu überprüfen:
Kann auch auf Schnittstellen angewendet werden.
quelle
Um Dónals Antwort um eine weitere Option zu erweitern, können Sie auch weiterhin die gute alte
java.lang.Object.getClass()
Methode verwenden.quelle
Sie können den Membership Operator isCase () verwenden, was eine weitere gute Möglichkeit ist:
quelle
somObject instanceof Date
sollte sein
somObject instanceOf Date
quelle
instanceof
sollte alles in Kleinbuchstaben sein.