Comment fonctionne le proxy dynamic de Java?

Je comprends comment utiliser les proxy dynamics en Java, mais ce que je ne comprends pas, c’est comment la machine virtuelle crée un proxy dynamic. Génère-t-il du bytecode et le charge-t-il? Ou autre chose? Merci.

Du moins pour l’implémentation de Sun, si vous examinez le code source de java.lang.reflect.Proxy vous constaterez qu’oui, le code octet est généré à la volée (à l’aide de la classe sun.misc.ProxyGenerator ).

Je vous suggère de lire les classes de proxy dynamic :

La méthode Proxy.getProxyClass renvoie l’object java.lang.Class d’une classe proxy, à partir d’un chargeur de classe et d’un tableau d’interfaces. La classe proxy sera définie dans le chargeur de classes spécifié et implémentera toutes les interfaces fournies. Si une classe proxy pour la même permutation d’interfaces a déjà été définie dans le chargeur de classes, la classe proxy existante est alors renvoyée. sinon, une classe proxy pour ces interfaces sera générée dynamicment et définie dans le chargeur de classes. [c’est moi qui souligne]