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()  | 
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
 target