實現流程
1、代理對象
2、介面
3、目標對象 源碼 代理對象
package com.test;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class Main { public static void main(String[] args) { // 目標對象(委派物件) final UserServiceImpl target = new UserServiceImpl(); // UserService 介面 UserService service = (UserService) Proxy.newProxyInstance(Main.class.getClassLoader(), new Class[]{UserService.class}, new InvocationHandler() { public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("執行前"); Object result = method.invoke(target, args); System.out.println("執行後"); return result; } }); System.out.println(service.getAge()); }} UserService 介面
package com.test;public interface UserService { Boolean isAdult(); Integer getAge();} UserServiceImpl 介面實作類別
package com.test;public class UserServiceImpl implements UserService { public Boolean isAdult() { return false; } public Integer getAge() { return 18; }}