Operador typeof em Java
 
Este tutorial apresenta como obter o tipo de dados de uma variável ou valor em Java e lista alguns códigos de exemplo para entender o tópico.
Em Java, para obter o tipo de uma variável ou valor, podemos usar o método getClass() da classe Object. Esta é a única maneira de fazer isso, ao contrário do JavaScript com o método typeof() para verificar o tipo.
Como usamos o método getClass() da classe Object, ele funciona apenas com objetos, não com primitivos. Se você deseja obter o tipo de primitivas, primeiro converta-as usando a classe wrapper. Vamos entender com alguns exemplos.
Obtenha o tipo de uma variável / valor em Java
Neste exemplo, usamos getClass() para verificar o tipo de uma variável. Como essa variável é do tipo string, podemos chamar o método diretamente. Veja o exemplo abaixo.
Observe que o método getClass() retorna um nome de classe totalmente qualificado, incluindo um nome de pacote como java.lang.String em nosso caso.
public class SimpleTesting {
  public static void main(String[] args) {
    String msg = "Hello";
    System.out.println(msg);
    System.out.println("Type is: " + msg.getClass());
  }
}
Produção:
Hello
Type is: class java.lang.String
Obtenha o tipo de qualquer variável / valor em Java
No exemplo acima, usamos uma variável string e obtivemos seu tipo de forma semelhante; também podemos usar outro tipo de variável e o método retorna o resultado desejado. Veja o exemplo abaixo.
Neste exemplo, criamos mais duas variáveis, integer e character, além de string, e usamos o método getClass().
package javaexample;
public class SimpleTesting {
  public static void main(String[] args) {
    String msg = "Hello";
    System.out.println(msg);
    System.out.println("Type is: " + msg.getClass());
    // Integer
    Integer val = 20;
    System.out.println(val);
    System.out.println("Type is: " + val.getClass());
    // Character
    Character ch = 'G';
    System.out.println(ch);
    System.out.println("Type is: " + ch.getClass());
  }
}
Produção:
Hello
Type is: class java.lang.String
20
Type is: class java.lang.Integer
G
Type is: class java.lang.Character
O método getClass() retorna um nome qualificado completo da classe, incluindo o nome do pacote. Se você deseja obter apenas o nome do tipo, pode usar o método getSimpleName() que retorna uma única string. Veja o exemplo abaixo.
package javaexample;
public class SimpleTesting {
  public static void main(String[] args) {
    String msg = "Hello";
    System.out.println(msg);
    System.out.println("Type is: " + msg.getClass().getSimpleName());
    // Integer
    Integer val = 20;
    System.out.println(val);
    System.out.println("Type is: " + val.getClass().getSimpleName());
    // Character
    Character ch = 'G';
    System.out.println(ch);
    System.out.println("Type is: " + ch.getClass().getSimpleName());
  }
}
Produção:
Hello
Type is: String
20
Type is: Integer
G
Type is: Character