Java动态代理实现。

xiaoxiao2026-06-12  10

HelloWorld.java 接口文件 public interface HelloWorld { public void sayHello();} HelloWorldImpl.java 接口的一种实现 public class HelloWorldImpl implements HelloWorld { public void sayHello() { // TODO Auto-generated method stub System.out.println("Hello World"); }} HelloWorldHandler.java 接口的代理文件 import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class HelloWorldHandler implements InvocationHandler { private Object obj = null; public HelloWorldHandler(Object obj) { this.obj = obj; } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // TODO Auto-generated method stub Object result = null; before(); result = method.invoke(obj, args); after(); return result; } public Object bind() { return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj .getClass().getInterfaces(), this); } public void before() { System.out.println("方法执行之前"); } public void after() { System.out.println("方法执行之后"); }} 测试 public static void main(String[] args) { HelloWorldHandler handler = new HelloWorldHandler(new HelloWorldImpl()); HelloWorld proxy = (HelloWorld) handler.bind(); proxy.sayHello(); }
转载请注明原文地址: https://www.6miu.com/read-5050011.html

最新回复(0)