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