Concordo com o que Joachim Sauer disse, não é possível saber (o tipo de variável! Não o tipo de valor!), A menos que sua variável seja um atributo de classe (e você teria que recuperar os campos da classe, obter o campo correto pelo nome ...)
Na verdade, para mim, é totalmente impossível que qualquer a.xxx().yyy()
método lhe dê a resposta certa, pois a resposta seria diferente no mesmo objeto, de acordo com o contexto em que você chama esse método ...
Como teehoo disse, se você souber compilar uma lista definida de tipos para testar, poderá usar instanceof, mas também obterá subclasses retornando true ...
Uma solução possível seria também se inspirar na implementação java.lang.reflect.Field
e criar sua própria Field
classe e declarar todas as suas variáveis locais como essa Field
implementação personalizada ... mas é melhor você encontrar outra solução, eu realmente me pergunto por que você precisa da variável tipo, e não apenas o tipo de valor?