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 InvocationHandlerThrowableprotected 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 © 2021 Hitachi Vantara. All rights reserved.