2012-05-07 12 views

Respuesta

30

Devuelve lo mismo que Object.getClass() para una instancia determinada, pero puede usarlo cuando sepa estáticamente qué clase desea (es decir, en tiempo de compilación).

Desde el Javadoc:

devuelve la clase en tiempo de ejecución de este objeto.

En pocas palabras, le da un objeto que representa la clase del objeto (el original). Se usa, entre otras cosas, por reflection cuando desee descubrir métodos y campos mediante programación para invocarlos/acceder a ellos.

Por ejemplo:

 Method m[] = String.class.getDeclaredMethods(); 
     for (int i = 0; i < m.length; i++) 
     { 
      System.out.println(m[i].toString()); 
     } 

El Javadoc también se refiere a la (que podría ser un poco pesada la lectura) Java Language Specification - Class Literals.

11

Devuelve el objeto Class que representa el nombre de la clase especificada. Esto se usa si necesita obtener el objeto Class.

Esto corresponde aproximadamente a .getClass(), que devuelve el objeto de clase que corresponde a la instancia del objeto. Utiliza some className.class cuando quiere trabajar con el objeto Class y no tiene una instancia de objeto.

+1

¿Quiere decir esto que devuelve la instancia de clase? – Rajeshwar

+0

@Rajeshwar no: p. 'new Object()' devuelve una nueva instancia de 'Object', pero' Object.class' es una instancia de la clase 'Class '. Son cosas diferentes. – trutheality

+0

@trutheality podría por favor elaborar .. – Rajeshwar

1

método Igual que .getClass(), pero se puede utilizar solamente para las clases nombradas y sin efecto. La sintaxis .class permite obtener una clase si el tipo de objeto está disponible, pero no hay ninguna instancia. Además, la forma más fácil de obtener una clase para un tipo primitivo.

3

.class es un literal de clase ... Al igual que 5 es un literal literal, como 5.0 es un literal doble (sorprendentemente, hay una clase llamada 'Clase' en el paquete java.lang).

lo tanto, puede imprimir la clase literal (al igual que se puede imprimir cualquier objeto ... se obtiene lo que los toString() devuelve la clase en clase). Puedes tener una variable de clase.

PD: hay muchas funciones que se pueden utilizar