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