Was ist der beste Weg, um den Datentyp in groovy zu bestimmen?Groovy/Grails, wie man einen Datentyp ermittelt?
Ich möchte die Ausgabe anders formatiert werden, wenn es ein Datum, etc.
Was ist der beste Weg, um den Datentyp in groovy zu bestimmen?Groovy/Grails, wie man einen Datentyp ermittelt?
Ich möchte die Ausgabe anders formatiert werden, wenn es ein Datum, etc.
die Klasse eines Objekts rufen Sie einfach zu bestimmen:
someObject.getClass()
Sie dies in den meisten Fällen zu someObject.class
abkürzen kann . Wenn Sie dies jedoch auf einem Map
verwenden, versucht es, den Wert mit Schlüssel 'Klasse' abzurufen. Aus diesem Grund verwende ich immer getClass()
, obwohl es ein wenig länger ist.
Wenn Sie überprüfen wollen, ob ein Objekt eine bestimmte Schnittstelle implementiert oder erweitert eine bestimmte Klasse (zB Datum) verwenden:
(somObject instanceof Date)
oder zu überprüfen, ob die Klasse eines Objekts ist genau eine bestimmte Klasse (nicht eine Unterklasse davon) verwenden:
(somObject.getClass() == Date)
einfach eine andere Option zu Don Antwort hinzufügen möchten, können Sie auch noch die gute alte java.lang.Object.getClass()
Methode.
somObject instanceof Date
sollte
somObject instanceOf Date
Dies ist nicht korrekt. "instanceof" sollte in Kleinbuchstaben geschrieben sein. – cdeszaq
Einfache groovy Weg Objekttyp zu überprüfen:
somObject in Date
Kann auch auf Schnittstellen angewendet werden.
grooviest Lösung so weit – user615274
Sie können die Mitgliedschaft Operator isCase() verwenden, die eine andere groovy Art und Weise ist:
assert Date.isCase(new Date())
'instanceof' ist für Filterung basierend auf der Schnittstelle. – cdeszaq
Zumindest im neuesten Groovy (2.3.7) können wir auch someObject.class – loloof64
@ LaurentBERNABE schreiben, das in den meisten Fällen funktioniert, aber nicht in allen, z.B. eine 'Map'-Instanz –