Jaki jest najlepszy sposób na określenie typu danych w Groovy?
Chciałbym inaczej sformatować dane wyjściowe, jeśli jest to data itp.
Aby określić klasę obiektu, po prostu wywołaj:
someObject.getClass()
W someObject.class
większości przypadków można to skrócić do . Jeśli jednak użyjesz tego na a Map
, spróbuje pobrać wartość za pomocą klucza „class”. Z tego powodu zawsze używam, getClass()
chociaż jest trochę dłuższy.
Jeśli chcesz sprawdzić, czy obiekt implementuje określony interfejs lub rozszerza określoną klasę (np. Date) użyj:
(somObject instanceof Date)
lub aby sprawdzić, czy klasa obiektu jest dokładnie określoną klasą (a nie jej podklasą), użyj:
(somObject.getClass() == Date)
instanceof
świetnie nadaje się do filtrowania na podstawie interfejsu.Map
Instancjadef test = {} println test.getClass()
class Script1 $ _run_closure1 ??Prosty, świetny sposób na sprawdzenie typu obiektu:
Może być stosowany również do interfejsów.
źródło
Aby dodać kolejną opcję do odpowiedzi Dónal, nadal możesz użyć starej, dobrej
java.lang.Object.getClass()
metody.źródło
Możesz użyć operatora członkostwa isCase (), który jest kolejnym fajnym sposobem:
źródło
somObject instanceof Date
Powinien być
somObject instanceOf Date
źródło
instanceof
wszystkie powinny być pisane małymi literami.