gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 14:19:28 24 4
gpt4 key购买 nike

我在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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com