obteniendo solo el nombre de la clase Class.getName()

3 minutos de lectura

¿Cómo puedo obtener el nombre de la clase?

String.class.getName()  returns java.lang.String

Solo estoy interesado en obtener la última parte, es decir, solo String

Cualquier API puede hacer eso?

  • Java tiene una excelente documentación en línea. La página que andyb vinculó a continuación es un ejemplo. Cada vez que tenga una pregunta sobre la funcionalidad exacta disponible de una clase o paquete, los javadocs son tan fáciles de encontrar como buscar en Google “java 6 “.

    – jpm

    21 de julio de 2011 a las 14:33

Class.getSimpleName()

  • String.class.getSimpleName() -> String, donde String.class.getName() -> java.lang.String

    – Peter Dietz

    28 mayo 2014 a las 18:38


  • Gracias, @andyb getSimpleName() es más fácil acceder al nombre de la clase menos el nombre del paquete. Sintaxis: object.getClass().getSimpleName() Código de muestra

    – Abhijeet

    23 de febrero de 2016 a las 11:31

  • Cómo asignarlo para la variable de cadena estática. muestra un error en el estudio de Android.

    – Mohan Raj S

    15 de febrero de 2018 a las 10:16

  • No funciona para las clases internas: esto eliminará el nombre de la clase adjunta, no solo el paquete.

    – forjador de herramientas

    31 de agosto de 2020 a las 16:23

avatar de usuario
venkatesh k

El siguiente en ambos sentidos funciona bien.

System.out.println("The Class Name is: " + this.getClass().getName());
System.out.println("The simple Class Name is: " + this.getClass().getSimpleName());

Salida de la siguiente manera:

El nombre de la clase es: paquete.Estudiante

El nombre de clase simple es: Estudiante

o programáticamente

String s = String.class.getName();
s = s.substring(s.lastIndexOf('.') + 1);

  • Esto me ayudó ya que no puedo usar getSimpleName() desde mi marco … Tq

    – Impostor

    21 de junio de 2013 a las 10:53

  • Además, el enfoque programático produce resultados sensatos para las clases anónimas.

    – Hollis Waite

    27 de diciembre de 2013 a las 15:39

  • @Imposter, ¿estás usando algo anterior a Java 1.5?

    – Rabino sigiloso

    7 mayo 2014 a las 12:02

  • Necesita manejar el caso donde no . es encontrado.

    – eckes

    14 de mayo de 2019 a las 7:01

  • @eckes si no se encuentra el punto, el resultado será -1, agregar 1 le dará una subcadena que comienza en el índice 0, exactamente lo que necesita en este caso. (Acabo de probar eso con int[]el resultado es "[I".)

    – toolforger

    Aug 31, 2020 at 16:12


user avatar
Kailas Bhakade

You can use following simple technique for print log with class name.

private String TAG = MainActivity.class.getSimpleName();

Suppose we have to check coming variable value in method then we can use log like bellow :

private void printVariable(){
Log.e(TAG, "printVariable: ");
}

Importance of this line is that, we can check method name along with class name. To write this type of log.

write :- loge and Enter.

will print on console

E/MainActivity: printVariable:

Social.class.getSimpleName()

getSimpleName() :
Returns the simple name of the underlying class as given in the source code. Returns an empty string if the underlying class is anonymous.
The simple name of an array is the simple name of the component type with “[]” adjunto. En particular, el nombre simple de una matriz cuyo tipo de componente es anónimo es “[]”.

avatar de usuario
aguilucho3d

Esta es la forma Groovy de acceder a las propiedades de los objetos:

this.class.simpleName    # returns the simple name of the current class

Obtenga un nombre simple en lugar de una ruta.

String onlyClassName =  this.getLocalClassName(); 

llamar al método anterior en onCreate

  • Solución incompleta.

    – PLG

    10 mayo 2019 a las 20:34

  • Si no proporciona la fuente para el método, OP no podrá usarlo.

    – eckes

    14 de mayo de 2019 a las 6:59

¿Ha sido útil esta solución?