首页
Java面试
PHP面试
经验笔记
在线工具
首页
在线工具
Java中动态代理和静态代理的区别
Java 动态代理
C语言 在线运行
C++ 在线运行
Java 在线运行
PHP 在线运行
Python 在线运行
Python3 在线运行
Nodejs 在线运行
Ruby 在线运行
Perl 在线运行
Go 在线运行
R语言 在线运行
Lua 在线运行
C# 在线运行
结果显示HTML
清空
点击运行
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; /** * 办理请假 */ class BizLeaveImpl implements BizLeave{ public void doLeave(String name){ System.out.println(name + "办理请假"); } } interface BizLeave{ public void doLeave(String name); } public class Zhangsan{ public static void main(String[] args) { // 获取代理对象 BizLeave bizLeave = (BizLeave) (new JdkProxy().newProxyInstance(new BizLeaveImpl())); bizLeave.doLeave("张三"); } public static class JdkProxy implements InvocationHandler { private Object target; @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("调用方法"+method.getName()); Object result = method.invoke(target, args); return result; } /** * 获取代理对象 **/ private Object newProxyInstance(Object targetObject){ // 目标对象赋值 this.target = targetObject; // 返回代理对象 return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this); } } }
运行结果
Java 动态代理在线测试,这是一个简单方便的Java在线运行工具,支持在线编译、在线调试和在线结果的实时反馈。