Le paquetage java.lang.reflect fournit des classes et interfaces permettant d'obtenir des informations introspectives sur les classes et objets ciblés.

Les interfaces
InvocationHandler est implémentée par le gestionnaire d'invocation d'une instance de proxy.
Member reflête les informations identificatrices sur les champs, méthodes et constructeurs.

Les classes
AccessibleObject est la classe de base pour les objets Field, Method et Constructor.
Array fournit des méthodes statiques pour créer et accéder dynamiquement au tableaux Java.
Constructor fournit des informations sur un constructeur d'une classe et comprend des moyens d'accès dynamique vers ce dernier.
Field fournit des informations sur un champ d'une classe ou interface, et comprend des moyens d'accès à ce dernier.
Method fournit des informations sur une méthode d'une classe ou interface, et comprend des moyens d'accès à ce dernier.
Modifier fournit des méthodes et constantes statiques pour décoder les modificateurs d'accès des membres et d'une classe.
Proxy fournit des méthodes statiques pour la création dynamique d'instances et classes de proxy, et elle est aussi la superclasse de toutes les classes proxy dynamiques créées par ces méthodes.
ReflectPermission représente la classes Permission pour les opérations d'introspection.

Les exceptions
InvocationTargetException est une exception contrôlée qui enveloppe une exception lancée par un constructeur ou une méthode invoquée.
UndeclaredThrowableException est lancée par une invocation d'une méthode sur une instance de proxy si sa méthode invoke() du gestionnaire d'invocation lance une exception contrôlée (un objet Throwable qui n'est pas aassignable un objet RuntimeException ou Error) qui ne sont affectables à aucun des types d'exception déclarés dans la clause throws de la méthode appelée sur l'instance de proxy et envoyée au gestionnaire d'invocation.
Sommaire