Re: Dynamic method invocation on Proxy object?
- From: Steven Simpson <ss@xxxxxxxxxxxxxx>
- Date: Wed, 08 Feb 2012 10:34:25 +0000
On 08/02/12 08:19, Sebastian wrote:
However, when delegate is itself a proxy, then delegate.getClass() will give me Proxy,
Are you sure? I get $Proxy0 from this:
import java.lang.reflect.*;
public class GetProxyClass {
public static void main(String[] args) throws Exception {
ClassLoader classLoader =
ClassLoader.getSystemClassLoader();
InvocationHandler behaviour = new InvocationHandler() {
public Object invoke(Object proxy, Method method,
Object[] args) {
System.out.println("Called " + method);
return null;
}
};
Object proxy =
Proxy.newProxyInstance(classLoader,
new Class<?>[] { Runnable.class },
behaviour);
Class<?> proxyClass = proxy.getClass();
System.out.println("Proxy class is: " + proxyClass);
Method m = proxyClass.getMethod("run", new Class<?>[0]);
((Runnable) proxy).run();
m.invoke(proxy);
}
}
Output:
Proxy class is: class $Proxy0
Called public abstract void java.lang.Runnable.run()
Called public abstract void java.lang.Runnable.run()
It also demonstrates a method on the implemented interface being looked up and invoked.
--
ss at comp dot lancs dot ac dot uk
.
- Follow-Ups:
- Re: Dynamic method invocation on Proxy object?
- From: Sebastian
- Re: Dynamic method invocation on Proxy object?
- References:
- Dynamic method invocation on Proxy object?
- From: Sebastian
- Dynamic method invocation on Proxy object?
- Prev by Date: 200 Java Books
- Next by Date: Re: packaging selenium code as jar
- Previous by thread: Dynamic method invocation on Proxy object?
- Next by thread: Re: Dynamic method invocation on Proxy object?
- Index(es):
Relevant Pages
|