Вы можете использовать метод getClass()
, чтобы получить тип объекта, который вы используете:
Object obj = null;
obj = new ArrayList<String>();
System.out.println(obj.getClass());
obj = "dummy";
System.out.println(obj.getClass());
obj = 4;
System.out.println(obj.getClass());
Это сгенерирует следующий вывод:
class java.util.ArrayList
class java.lang.String
class java.lang.Integer
Как вы видите, он покажет тип объекта, на который ссылается переменная, который может не совпадать с типом переменной (в данном случае Object
).
Для примитива Для типов нет доступного решения, так как проблема знания типа, хранящегося в переменной, не существует. Переменная примитивного типа может содержать только значения этого типа. Поскольку вы должны определить переменную (или параметр) где-то, вы уже знаете ее тип и значения, которые она может содержать. Для базовых значений не существует «базового» типа, который можно использовать аналогично типу Object
, который является базовым типом для всех объектов в java.