Obtener el nombre de la clase en Java
-
Obtener el nombre de la clase usando
class.getSimpleName()
en Java -
Obtener el nombre de clase de una clase anónima usando
getName()
-
Obtener el nombre de la clase usando
Thread.currentThread().getStackTrace()[1].getClassName()
Este tutorial enseña cómo obtener el nombre de la clase en Java utilizando cuatro métodos. Hay muchos casos en los que es posible que deseemos obtener el nombre de la clase en Java.
Obtener el nombre de la clase usando class.getSimpleName()
en Java
Esta es la forma más utilizada de obtener el nombre de una clase. En el siguiente ejemplo, tenemos dos clases: GetClassName
con el método main()
, y otra clase es ExampleClass
.
En la clase GetClassName
, usamos ExampleClass.class
para obtener la información de la clase. Devuelve una instancia de Clase
de tipo ExampleClass
. Ahora podemos llamar a getSimpleName()
usando la classNameInstance
que devolverá solo el nombre de la clase como una cadena.
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");
}
}
Producción :
ExampleClass
Obtener el nombre de clase de una clase anónima usando getName()
Una clase interna sin ningún nombre se denomina clase anónima. En este ejemplo, aprenderemos cómo obtener un nombre de clase si es anónimo o comprobar si una clase tiene una clase anónima. A continuación, creamos una interfaz Example
para instanciar la clase anónima. En GetClassName
, instanciamos la clase sin un nombre usando la interfaz e implementamos la función printMessage()
.
Para obtener el nombre de la clase, usamos example.getClass()
, pero como no hay nombre de la clase, obtenemos una instancia del tipo Class<?>
. Luego usamos classNameInstace
para llamar a getName()
que devuelve el nombre de la clase. Como muestra el resultado, obtenemos el nombre de la clase principal GetClassName
con $1
añadido, que representa la clase 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);
}
}
Producción :
GetClassName$1
Obtener el nombre de la clase usando Thread.currentThread().getStackTrace()[1].getClassName()
En el último ejemplo, usamos la clase Thread
para obtener el subproceso en ejecución actual usando currentThread()
que nos da acceso al volcado de pila y todas las invocaciones en el subproceso. getStackTrace()
devuelve un array de elementos de la pila de la que obtenemos el segundo elemento del array y llamamos a getClassName()
para obtener el nombre de clase de la invocación.
public class GetClassName {
public static void main(String[] args) {
String simpleClassName = Thread.currentThread().getStackTrace()[1].getClassName();
System.out.println("Class name: " + simpleClassName);
}
}
Producción :
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