Obtenha o nome da classe em Java
-
Obtenha o nome da classe usando
class.getSimpleName()
em Java -
Obter o nome da classe de uma classe anônima usando
getName()
-
Obtenha o nome da classe usando
Thread.currentThread().getStackTrace()[1].getClassName()
Este tutorial ensina como obter o nome da classe em Java usando quatro métodos. Existem muitos casos em que podemos desejar obter o nome da classe em Java.
Obtenha o nome da classe usando class.getSimpleName()
em Java
Esta é a forma mais utilizada de obter o nome de uma classe. No exemplo a seguir, temos duas classes: GetClassName
com o método main()
e outra classe é ExampleClass
.
Na classe GetClassName
, usamos ExampleClass.class
para obter as informações da classe. Ele retorna uma instância de Class
do tipo ExampleClass
. Agora podemos chamar getSimpleName()
usando classNameInstance
que retornará apenas o nome da classe como uma String.
public class GetClassName {
public static void main(String[] args) {
Class<ExampleClass> classNameInstance = ExampleClass.class;
String className = classNameInstance.getSimpleName();
System.out.println(className);
}
}
class ExampleClass {
private void exampleFun() {
System.out.println("Just a function in a class");
}
}
Produção:
ExampleClass
Obter o nome da classe de uma classe anônima usando getName()
Uma classe interna sem nenhum nome é chamada de classe Anônima. Neste exemplo, aprenderemos como obter o nome de uma classe se ela for anônima ou verificar se uma classe possui uma classe anônima. Abaixo, criamos uma interface Exemplo
para instanciar a classe anônima. Em GetClassName
, instanciamos a classe sem um nome usando a interface e implementamos a função printMessage()
.
Para obter o nome da classe, usamos example.getClass()
, mas como não há nome da classe, obtemos uma instância do tipo Class<?>
. Então usamos classNameInstace
para chamar getName()
que retorna o nome da classe. Como mostra a saída, obtemos o nome da classe pai GetClassName
com $1
anexado, representando a classe anônima.
interface Example {
void printMessage();
}
public class GetClassName {
public static void main(String[] args) {
Example example = new Example() {
@Override
public void printMessage() {
System.out.println("This is an anonymous inner class");
}
};
Class<?> classNameInstance = example.getClass();
String className = classNameInstance.getName();
System.out.println(className);
}
}
Produção:
GetClassName$1
Obtenha o nome da classe usando Thread.currentThread().getStackTrace()[1].getClassName()
No último exemplo, usamos a classe Thread
para obter o thread em execução atual usando currentThread()
que nos dá acesso ao despejo de pilha e todas as invocações no thread. getStackTrace()
retorna um array de elementos da pilha a partir da qual obtemos o segundo item do array e chamamos getClassName()
para obter o nome da classe da invocação.
public class GetClassName {
public static void main(String[] args) {
String simpleClassName = Thread.currentThread().getStackTrace()[1].getClassName();
System.out.println("Class name: " + simpleClassName);
}
}
Produção:
Class name: GetClassName
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn