Я попытался использовать код Sun, размещенный на их Proxy usage page, и я попытался использовать DebugProxy для печати, который вызывается. Дело в том, что для объекта, для которого я создаю прокси-сервер, должен быть аргумент. Если я пытаюсь создать прокси-сервер с аргументом конструктора, я получаю следующее сообщение об ошибке:Как я могу использовать динамический прокси-сервер для конструкторов, которые принимают аргументы?
Exception in thread "main" java.lang.ClassCastException: $Proxy0 cannot be cast to myPackage.myClass
Я создал прокси-сервер, как это:
MyClass mc = (MyClass) DebugProxy.newInstance(new MyClass(props));
Как я могу создать экземпляр прокси, и все еще вызываете правый конструктор?
Да. это отстой :). Я надеялся, что DynamicProxy будет быстрым способом сделать это. – Geo
Этот прокси-сервер всегда основан на интерфейсах, но другие библиотеки генерации прокси могут напрямую проксировать типы вашего класса. Например, CGLIB может это сделать, и если вы используете прокси CGLIB через ProxyFactory Spring, это весело. Spring ProxyFactory Spring может создавать прокси-серверы JDK или прокси CGLIB, поэтому это полезная абстракция. – skaffman