Java Tutorial/Reflection/Proxy

Материал из Java эксперт
Перейти к: навигация, поиск

Creating a Proxy Object

   <source lang="java">

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();
 }

}</source>