Operador typeof em Java

Mohammad Irfan 12 outubro 2023
  1. Obtenha o tipo de uma variável / valor em Java
  2. Obtenha o tipo de qualquer variável / valor em Java
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

Artigo relacionado - Java Operator