Java Dynamic Proxy - Как ссылаться на конкретный класс

У меня есть вопрос, касающийся динамических прокси в java.

Предположим, у меня есть интерфейс под названием Foo с методом execute и класс FooImpl реализует Foo .

Когда я создаю прокси для Foo , я получаю что-то вроде:

Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(),
                                     new Class[] { Foo.class },
                                     handler);

Предположим, мой обработчик вызова выглядит так:

public class FooHandler implements InvocationHandler {
    public Object invoke(Object proxy, Method method, Object[] args) {
        ...
    }
}

Если мой код вызова выглядит примерно как

Foo proxyFoo = (Foo) Proxy.newInstance(Foo.getClass().getClassLoader(),
                                       new Class[] { Foo.class },
                                       new FooHandler());
proxyFoo.execute();

Если прокси-сервер может перехватить вышеупомянутый вызов , выполните из интерфейса Foo , откуда появляется FooImpl играть? Возможно, я неправильно смотрю на динамические прокси. Я хочу иметь возможность перехватить вызов execute из конкретной реализации Foo , такой как FooImpl . Можно ли это сделать?

Большое спасибо

5
задан mange 23 January 2015 в 03:02
поделиться