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