Un objet de Classe est une sorte de méta-objet décrivant la classe d'un objet. Il est principalement utilisé avec les capacités de réflexion de Java. Vous pouvez la considérer comme un "modèle" de la classe réelle. E. g. vous avez une Voiture de classe comme ceci:
public class Car {
public String brand;
}
Vous pourrez alors créer un objet de Classe qui décrit votre "Voiture" classe.
Class myCarClass = Class.forName("Car");
Maintenant, vous pouvez faire toutes sortes d'interrogation sur votre Voiture de classe de Classe de l'objet:
myCarClass.getName() - returns "Car"
myCarClass.getDeclaredField("brand") - returns a Field object describing the "brand" field
et ainsi de suite. Chaque objet java a une méthode getClass() qui retourne la Classe de l'objet décrivant la Classe de l'objet Java. Donc, vous pourriez faire quelque chose comme:
Car myCar = new Car();
Class myCarClass = myCar.getClass();
Cela fonctionne aussi pour les objets que vous ne connaissez pas, l'e.g les objets que vous obtenez à partir de l'extérieur:
public void tellMeWhatThisObjectsClassIs(Object obj) {
System.out.println(obj.getClass().getName());
}
Vous pourrait nourrir cette méthode tout objet java, et il aura l'impression de la classe réelle de l'objet que vous avez donné.
Lorsque l'on travaille avec Java, la plupart du temps, vous n'avez pas besoin de s'inquiéter à propos des objets de la Classe. Ils ont un peu de pratique cas d'utilisation du bien. E. g. ils vous permettent de programmation pour instancier des objets d'une certaine classe, qui est souvent utilisé pour objet de sérialisation et de désérialisation (par exemple, la conversion des Objets Java pour XML et à l'arrière, ainsi la plupart du temps de retour).
Class myCarClass = Class.forName("Car");
Car myCar = myCarClass.newInstance(); // is roughly equivalent to = new Car();
Vous pouvez également l'utiliser pour trouver la déclarer tous les champs ou de méthodes de votre classe, etc, ce qui est très utile dans certains cas. Donc par exemple, si votre méthode est remis un objet inconnu et vous avez besoin d'en savoir plus sur elle, comme si elle imlements une interface etc, la Classe la classe est votre ami ici.
Donc pour faire une histoire courte, la Classe, Champ, Méthode, etc. les classes qui sont dans le java.lang.réfléchir package vous permettent d'analyser votre défini des classes, des méthodes, des champs, de créer de nouvelles instances d'entre eux, l'appel des méthodes toutes sortes d'autres choses et ils vous permettent de le faire dynamiquement à l'exécution.