动态代理invoke中getMethod参数怎么设置?

AndrewNg 2011-05-01 04:12:06
我在动态代理类Proxy的invoke方法中,需要获得代理的类的一个方法:getMethod(String name, Class<?>... parameterTypes)。

我需要获得的那个方法有参数,参数是一个VO类的对象。

那在getMethod中的Class<?>...parameterTypes这个参数应该怎么写呢?

急求 在线等
...全文
666 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bannings 2011-05-01
  • 打赏
  • 举报
回复
或者用:

if (VO.class.isInstance(args[0])) {
System.out.println("相同");
}
Bannings 2011-05-01
  • 打赏
  • 举报
回复

if (args[0] instanceof VO) {
System.out.println("相同");
}
Bannings 2011-05-01
  • 打赏
  • 举报
回复

public class App {
public static void main(String[] args) {
Inter vo = (Inter) Proxy.newProxyInstance(App.class.getClassLoader(), VO.class.getInterfaces(), new InvocationHandler() {

@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if (args[0].getClass() == VO.class) {
System.out.println("相同");
}
return null;
}
});
vo.getString(new VO());

}
}

interface Inter {
public void getString(VO v);
}

class VO implements Inter {

public void getString(VO v) {
System.out.println("--------------");
}
}
AndrewNg 2011-05-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhangao0086 的回复:]

getParameterTypes(),返回当前方法的参数类型数组(Class<?>),你再判断这个类型是不是VO
[/Quote]

没明白=。=

invoke方法invoke(Object proxy, Method method,Object[] args),参数args怎么转化成getMethod的参数Class<?>...parameterTypes这种类型啊
  • 打赏
  • 举报
回复
我也在急求问题答案啊。。。。。。。。。。。。。。。。。。。。。。。。。
Bannings 2011-05-01
  • 打赏
  • 举报
回复
getParameterTypes(),返回当前方法的参数类型数组(Class<?>),你再判断这个类型是不是VO

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧