package cm.java.util; import java.lang.reflect.InvocationHandler; public class Proxy { public static <T> T newProxy(DynamicHandler hanlder) { Object obj = hanlder.getObj(); Class clazz = obj.getClass(); ClassLoader classLoader = clazz.getClassLoader(); Class<T>[] interfaces = clazz.getInterfaces(); return (T) java.lang.reflect.Proxy.newProxyInstance(classLoader, interfaces, hanlder); } public static abstract class DynamicHandler implements InvocationHandler { private Object obj; public DynamicHandler(Object obj) { this.obj = obj; } public Object getObj() { return obj; } } }