Как определить класс у переменной?

В Java, чтобы определить класс объекта, хранящегося в переменной, можно использовать оператор instanceof. Оператор instanceof проверяет, является ли объект экземпляром определенного класса или его потомка.

Пример:

public class MyClass {
    public static void main(String[] args) {
        Object obj = "Hello";

        if (obj instanceof String) {
            System.out.println("obj является экземпляром класса String");
        } else if (obj instanceof Integer) {
            System.out.println("obj является экземпляром класса Integer");
        } else {
            System.out.println("obj не является экземпляром ни одного из этих классов");
        }
    }
}

Выполнение данного кода выведет "obj является экземпляром класса String".

Также, в некоторых случаях, когда переменная объявлена с явным типом, можно использовать метод getClass() для получения объекта Class, представляющего тип переменной.

Пример:

public class MyClass {
    public static void main(String[] args) {
        String str = "Hello";

        Class<?> c = str.getClass();
        System.out.println("Тип переменной str: " + c.getName());
    }
}

Выполнение данного кода выведет "Тип переменной str: java.lang.String".

Таким образом, оператор instanceof и метод getClass() позволяют определить класс объекта, хранящегося в переменной.