public abstract class DelegatingInvocationHandler extends Object implements InvocationHandler
DelegatingInvocationHandler
handles a
method call by looking for a method in itself with identical parameters. If
no such method is found, it forwards the call to a fallback object, which
must implement all of the interfaces which this proxy implements.
It is useful in creating a wrapper class around an interface which may change over time.
Example:
import java.sql.Connection; Connection connection = ...; Connection tracingConnection = (Connection) Proxy.newProxyInstance( null, new Class[] {Connection.class}, new DelegatingInvocationHandler() { protected Object getTarget() { return connection; } Statement createStatement() { System.out.println("statement created"); return connection.createStatement(); } });
Constructor and Description |
---|
DelegatingInvocationHandler() |
Modifier and Type | Method and Description |
---|---|
protected Object |
getTarget()
Returns the object to forward method calls to, should the derived class
not implement the method.
|
Object |
invoke(Object proxy,
Method method,
Object[] args) |
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
invoke
in interface InvocationHandler
Throwable
protected Object getTarget() throws InvocationTargetException
The default implementation returns null, which will cause the
invoke(Object, java.lang.reflect.Method, Object[])
method
to throw an UnsupportedOperationException
if the derived class
does not have the required method.
InvocationTargetException
- if there is an error acquiring the
targetCopyright © 2019 Hitachi Vantara. All rights reserved.