java - 如果 getDeclaredMethod 就足够了,为什么我要使用 java 代理

标签 java proxy

我在java中实现了一个类似ruby的send方法,我认为它已经实现了动态调用,我的问题是我还需要java动态代理吗?

这是我的代码:

/**
 * Created by roroco on 12/8/14.
 */
final class C {
    public void methInC(String arg) {
        System.out.println(arg + "\t\t" + new Exception().getStackTrace()[0].getFileName() + ":" + new Exception().getStackTrace()[0].getLineNumber());
    }
}

class C2 {
    C c;

    public C2() {
        this.c = c;
    }

    public void send(String methName, Object... args) {
        try {
            ArrayList types = new ArrayList();
            for (Object o : args) {
                types.add(o.getClass());
            }
            Class[] klsColl = (Class[]) types.toArray(new Class[]{});
            C.class.getDeclaredMethod(methName, klsColl).invoke(new C(), args);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
            System.exit(-1);
        } catch (InvocationTargetException e) {
            e.printStackTrace();
            System.exit(-1);
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
            System.exit(-1);
        }
    }
}

最佳答案

动态代理用于提供接口(interface)的实现,这些接口(interface)可以传递给需要这些接口(interface)的其他代码。

关于java - 如果 getDeclaredMethod 就足够了,为什么我要使用 java 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27355405/

相关文章:

没有证书的 c# 代理 ssl/tls 直通

proxy - 使用 GitPython 克隆代理后面的存储库

java - [HELP]BST 递归插入时 Java StackOverflow 错误

java - 如何分析来自 Java 核心转储的信息?

java - 具有多个服务器的客户端-服务器架构

python - Scrapy框架的代理IP

docker - SonarQube Scanner不同时使用全局或特定代理设置

java - java如何实现从内部内部类访问封闭类?

java - org.springframework.orm.hibernate4.HibernateOptimisticLockingFailureException

node.js - 使用 http-proxy-middleware 重写路径