Как на самом деле работает динамический прокси Java? - PullRequest
10 голосов
/ 23 апреля 2009

Я понимаю, как использовать динамические прокси в Java, но я не понимаю, как виртуальная машина фактически создает динамический прокси. Он генерирует байт-код и загружает его? Или что-то другое? Спасибо.

Ответы [ 2 ]

12 голосов
/ 23 апреля 2009

По крайней мере, для реализации Sun, если вы посмотрите на исходный код java.lang.reflect.Proxy, вы увидите, что да, он генерирует байт-код на лету (используя класс sun.misc.ProxyGenerator).

5 голосов
/ 23 апреля 2009

Я предлагаю вам прочитать Динамические прокси-классы :

Метод Proxy.getProxyClass возвращает объект java.lang.Class для прокси класс с учетом загрузчика класса и массив интерфейсов. Прокси класс будет определен в указанном классе загрузчик и будет реализовывать все поставляемые интерфейсы. Если прокси класс для той же перестановки интерфейсов уже был определен в классе загрузчик, то существующий прокси-класс будет возвращен; в противном случае прокси класс для этих интерфейсов будет генерируется динамически и определяется в загрузчик классов. [выделено мое]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...