2011-08-01 11 views
47

Me disculpo si esta pregunta se ha hecho ya. Busqué las preguntas y no pude encontrar una respuesta.clase concreta de la clase abstracta

En Java, dentro de una clase abstracta ¿puedo obtener la instancia de la clase concreta que la amplía?

Si es así, ¿puedo ver un ejemplo de código?

Respuesta

63

Sí, puede hacerlo llamando al this.getClass(). Esto le dará la instancia Class para el tipo de tiempo de ejecución this.

Si solo desea el nombre de la clase, puede usar this.getClass().getName().

Por último, también están this.getClass().getSimpleName() y this.getClass().getCanonicalName(). Uso el anterior todo el tiempo para imprimir nombres de clase legibles para registrar archivos y cosas similares.

+1

@Martin, 'format.getClass()' es la clase concreta utilizada. –

+1

Aquí el ejemplo: formato 'java.text.NumberFormat = java.text.NumberFormat.getInstance();' ' System.out.println (format.getClass());' Lo sentimos, no obtienen la formateo para trabajar ... @Peter: tuve algunos problemas con las líneas nuevas. publicado demasiado pronto ... – Martin

+0

@Martin, votado. ;) –

Cuestiones relacionadas