Java Proxy
package com.su.liuqing.proxy_;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class ProxyTest {
// 目标接口
public interface TarInterface {
void say();
}
// 调用处理器
public static class MyHandler<T> implements InvocationHandler {
// 目标对象
private final T target;
public MyHandler(T target) {
this.target = target;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("方法执行前");
// 目标方法执行
return method.invoke(target, args);
}
}
public static void main(String[] args) {
// 目标对象
TarInterface target = new TarInterface() {
private final String name = "tar";
public void say() {
System.out.println("hello");
}
};
MyHandler<TarInterface> myHandler = new MyHandler<>(target);
// 创建代理对象
Object proxyInstance = Proxy.newProxyInstance(ProxyTest.class.getClassLoader(), new Class[]{TarInterface.class}, myHandler);
TarInterface p = (TarInterface) proxyInstance;
p.say();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2019-07-24 java代码实现数据源切换(连接池简单粗暴)
2019-07-24 关于JDBC、JdbcTemplate使用遇到的坑