关于jdk 动态代理 如果InvocationHandler中用静态方法有没有什么隐患

class MyInvocationHandler implements InvocationHandler{
private static Service targetService;

@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    return null;
}

public static Service getProxyService(Service target){
    targetService = target;
    ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
    Class<?>[] interfaces = targetService.getClass().getInterfaces();
    return (Service)Proxy.newProxyInstance(contextClassLoader,interfaces,new MyInvocationHandler());
}

}

慕森卡
浏览 709回答 1
1回答

忽然笑

还是直接用匿名内部类吧 Service proxyInstance = (Service) Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler() { @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if ("add".equals(method.getName())) { System.out.println("HELLOIDEA"); } return null; } }); proxyInstance.add();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java