Я согласен с тем, что сказал Йоахим Зауэр, и это невозможно узнать (тип переменной! Не тип значения!), Если только ваша переменная не является атрибутом класса (и вам придется извлекать поля класса, получить правильное поле по имени ...)
На самом деле для меня совершенно невозможно, чтобы какой-либо a.xxx().yyy()метод дал вам правильный ответ, поскольку ответ был бы разным для одного и того же объекта в соответствии с контекстом, в котором вы вызываете этот метод ...
Как сказал teehoo, если вы знаете при компиляции определенный список типов для тестирования, вы можете использовать instanceof, но вы также получите подклассы, возвращающие true ...
Одним из возможных решений будет также вдохновить себя реализацией java.lang.reflect.Fieldи создать свой собственный Fieldкласс, а затем объявить все свои локальные переменные в качестве этой пользовательской Fieldреализации ... но вам лучше найти другое решение, мне действительно интересно, зачем вам нужна переменная тип, а не только тип значения?