JDK 动态代理

运行时生成代理类class

// 定义接口
interface GithubService {
    void getUser();

    void getRepos(String username);
}

interface TestService{
    void test();
}
GithubService p = (GithubService) Proxy.newProxyInstance(GithubService.class.getClassLoader(), new Class[]{GithubService.class,TestService.class}, new InvocationHandler() {
            @Override
            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                System.out.println("执行方法:" + method.getName() + ",对象:" + proxy.getClass().getName()+",参数:"+ Arrays.toString(args));
                return null;
            }
        });

生成的代理类

通过将对方法的调用转发给 InvocationHandler,实现方法的代理。

Java 动态代理

最后更新于

这有帮助吗?