2009-04-23 17 views
10

Entiendo cómo usar Dynamic Proxies en Java, pero lo que no entiendo es cómo la máquina virtual realmente crea un proxy dinámico. ¿Genera bytecode y lo carga? ¿O algo mas? Gracias.¿Cómo funciona realmente el Dynamic Proxy de Java?

+1

James, eres como un gurú de Java. ¿Acabas de probarnos con esta pregunta? – erickson

+0

Haha. Conozco el lenguaje Java, pero no soy un verdadero experto en VM. :) –

Respuesta

12

Al menos para la implementación de Sun, si nos fijamos en el código fuente de java.lang.reflect.Proxy verá que sí, se genera el código de bytes en la marcha (usando la clase sun.misc.ProxyGenerator) .

5

le sugiero que lea Dynamic Proxy Classes:

El método devuelve Proxy.getProxyClass el objeto java.lang.Class para una clase de proxy dado un cargador de clases y un variedad de interfaces. La clase de proxy se definirá en el cargador de clase especificado e implementará todas las interfaces suministradas . Si ya se ha definido una clase de proxy para la misma permutación de las interfaces en el cargador de la clase , se devolverá la clase de proxy existente ; de lo contrario, una clase proxy para esas interfaces será generada dinámicamente y definida en el cargador de clases. [el énfasis es mío]

Cuestiones relacionadas