Un objeto Class es una especie de metaobjeto que describe la clase de un objeto. Se utiliza principalmente con las capacidades de reflexión de Java. Puede pensar en ello como un "modelo" de la clase real. Por ejemplo, tienes un coche de clase como este:
public class Car {
public String brand;
}
Luego puede construir un objeto Class que describa su clase "Car".
Class myCarClass = Class.forName("Car");
Ahora puede hacer todo tipo de consultas en su clase Car en ese objeto Class:
myCarClass.getName() - returns "Car"
myCarClass.getDeclaredField("brand") - returns a Field object describing the "brand" field
y así. Cada objeto java tiene un método getClass () que devuelve el objeto Class que describe la clase del objeto Java. Entonces podrías hacer algo como:
Car myCar = new Car();
Class myCarClass = myCar.getClass();
Esto también funciona para objetos que no conoce, por ejemplo, objetos que obtiene del exterior:
public void tellMeWhatThisObjectsClassIs(Object obj) {
System.out.println(obj.getClass().getName());
}
Puede alimentar este método con cualquier objeto java e imprimirá la clase real del objeto que le ha dado.
Cuando trabaja con Java, la mayoría de las veces no necesita preocuparse por los objetos Class. Sin embargo, tienen algunos casos prácticos de uso. Por ejemplo, le permiten instanciar mediante programación objetos de una determinada clase, que se utiliza a menudo para la serialización y deserialización de objetos (por ejemplo, conversión de objetos Java hacia / desde XML o JSON).
Class myCarClass = Class.forName("Car");
Car myCar = myCarClass.newInstance();
También puede usarlo para averiguar todos los campos o métodos declarados de su clase, etc., lo cual es muy útil en ciertos casos. Entonces, por ejemplo, si su método recibe un objeto desconocido y necesita saber más sobre él, como si implementa alguna interfaz, etc., la clase Class es su amiga aquí.
En pocas palabras, las clases Class, Field, Method, etc.que están en el paquete java.lang.reflect le permiten analizar sus clases, métodos, campos definidos, crear nuevas instancias de ellos, llamar a métodos todo tipo de otras cosas y te permiten hacer esto dinámicamente en tiempo de ejecución.
Class
clase hereda deObject
sí misma.Class.class
devuelve unClass
objeto que representa laClass
clase. Puedes reflexionar sobre la reflexión. MI CABEZA ASPLODE.