Qual é a melhor maneira de determinar o tipo de dados no groovy?
Gostaria de formatar a saída de forma diferente se for uma data etc.
Para determinar a classe de um objeto, basta chamar:
someObject.getClass()
Você pode abreviar isso para someObject.class
na maioria dos casos. No entanto, se você usar isso em um, Map
ele tentará recuperar o valor com a chave 'class'. Por isso, eu sempre usogetClass()
mesmo que seja um pouco mais.
Se você deseja verificar se um objeto implementa uma interface específica ou estende uma classe específica (por exemplo, Data), use:
(somObject instanceof Date)
ou para verificar se a classe de um objeto é exatamente uma classe específica (não uma subclasse), use:
(somObject.getClass() == Date)
instanceof
é ótimo para filtragem com base na interface.Map
instânciadef test = {} println test.getClass()
classe Script1 $ _run_closure1 ??Maneira simples e simples de verificar o tipo de objeto:
Pode ser aplicado também a interfaces.
fonte
Apenas para adicionar outra opção à resposta de Dónal, você também pode usar o bom e velho
java.lang.Object.getClass()
método.fonte
Você pode usar o operador de associação isCase (), que é outra maneira interessante:
fonte
somObject instanceof Date
deveria estar
somObject instanceOf Date
fonte
instanceof
todos devem estar em letras minúsculas.