Mega Code Archive

 
Categories / Java / Reflection
 

Creating a Proxy Object

import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; interface MyInterface {   void method(); } class MyInterfaceImpl implements MyInterface {   public void method() {     System.out.println("method");   } } class ProxyClass implements InvocationHandler {   Object obj;   public ProxyClass(Object o) {     obj = o;   }   public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {     Object result = null;     try {       System.out.println("before the method is called ");       result = m.invoke(obj, args);     } catch (Exception eBj) {     } finally {       System.out.println("after the method is called");      }     return result;   } } public class Main {   public static void main(String[] argv) throws Exception {     MyInterface myintf = (MyInterface) Proxy.newProxyInstance(MyInterface.class.getClassLoader(),         new Class[] { MyInterface.class }, new ProxyClass(new MyInterfaceImpl()));     myintf.method();   } }