Package dynamicproxy; public interface simpleinterface {void dosomething (); void dosthelse (string S );}
Package dynamicproxy; public class realobject implements simpleinterface {@ overridepublic void dosomething () {system. out. println ("real object do something") ;}@ overridepublic void dosthelse (string s) {system. out. println ("real object do something else:" + S );}}
Package dynamicproxy; import Java. lang. reflect. invocationhandler; import Java. lang. reflect. method; public class dynamicproxyhandler implements invocationhandler {private object; Public dynamicproxyhandler (Object O) {This. object = O ;}@ overridepublic object invoke (Object proxy, method, object [] ARGs) throws throwable {system. out. println ("dynamicproxyhandler process. sent Proxy: "+ proxy. getclass (); Return method. invoke (object, argS );}}
package dynamicproxy; import Java. lang. reflect. proxy; public class test {static void consumer (simpleinterface OBJ) {obj. dosomething (); obj. dosthelse ("You can handle it");}/*** @ Param ARGs */public static void main (string [] ARGs) {realobject OBJ = new realobject (); consumer (OBJ); simpleinterface proxobj = (simpleinterface) proxy. newproxyinstance (simpleinterface. class. getclassloader (), new class [] {simpleinterface. class}, new dynamicproxyhandler (OBJ); consumer (proxobj) ;}}