client.invoke 参数时参数不匹配是怎么回事

本帖子已过去太久远了,不再提供回复功能。如何在使用getMethod方法时指定数组类型的参数和在invoke方法时传入数组参数
我的图书馆
如何在使用getMethod方法时指定数组类型的参数和在invoke方法时传入数组参数
这样写(假设方法的参数是String[],如main(String[] &args)): &Class &yourClass &= &Class.forName("YourClass");//假设你要动态加载的类为YourClass &&Class[] &parameterTypes &= &new &Class[1];//这里你要调用的方法只有一个参数 &&parameterTypes[0] &= &String[].//这个参数的类型是String[] &&Method &method &= &yourClass.getMethod("main", &parameterTypes);//这里假设你的类为YourClass,而要调用的方法是main &&Object[] &args &= &new &Object[1];//假设你要传入一个参数 &String[] &argments &= &new &String[2];//假设你要传入两个参数 &argments[0] &= &"OK"; &argments[1] &= &"NO"; &args[0] &= & &&method.invoke(yourClass.newInstance(), &args);//调用方法&&
TA的最新馆藏[转]&[转]&
喜欢该文的人也喜欢???????????в????????????_??????96
上亿文档资料,等你来发现
???????????в????????????_??????96
三亿文库包含各类专业文献、文学作品欣赏、各类资格考试、应用写作文书、中学教育、生活休闲娱乐、行业资料、???????????в????????????_??????96等内容。
 Ёбтвоюмать 相等于汉语里的“三字国骂”, 或者“你**”, 但又没有汉语“三字国骂” 那么伤人,那么解恨。很多时候,被骂的人并不十分生气。而...  λμνπξζηυθχψω C、俄 文字母大写 АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ D、 俄文字母小写 абвгд...  149. удава?ться \уда?ться 主体 3 格 …成功 150. ударя? ться \удари? ться + обо + что 撞到...  俄语中时间表示法 按照俄罗斯人的习惯,一昼夜的时间划分如下: утро――早上4点到11点 день――中午12点到下午4点 вечер――晚上5点到11点 ...  cкадина--畜牲 сука--婊子 сукасны ---婊子养的 пошёлвонотсюда ---滚出去 трахать---操,打炮 ёлк...  (-ая, -ое, -ые) увидетьCувиденный(-ая, -ое, -ые) [注]:此类形动词的重音一般都在-анн-, -янн-, -...  和接名词第五格的动词连用 руководить (领导, 掌管) ,владеть (拥有,精通), гордиться(以...为骄傲), занимат...  完成体副动词的重音一般和该动词的过去时形式的重音相同,如:заперетьCзаперCзаперши, увлечьсяCувл?ксяCувл...求助,关于InvocationHandler接口的invoke方法的三个参数问题【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:659,003贴子:
求助,关于InvocationHandler接口的invoke方法的三个参数问题收藏
看AOP实现原理的时候,对java.lang.reflect.InvocationHandler类的invoke(Object proxy,Method method, Object[] args )方法中的参数无法理解,对于第二个参数,我的理解是我们对代理对象调用xxx方法时,系统会调用代理对象的invoke方法,并将xxx方法封装成一个Method对象传给invoke,这样invoke才知道要动态调用哪个方法(也不知道理解的对不对),那其他两个参数是什么意思呢,有什么作用?从哪里来?
2017java学习来上市公司博为峰学java,入学即签就业协议,不就业不收费,查看java课程!java好学吗?java课程来博为峰学,java工程师就业年薪十几万!
没有人么~自学中,求帮助
我擦,顶,求大神现身
好像第一个是代理类,第三个是方法参数
你去看看动态代理
这是一种设计模式
看完动态代理才好理解aop
看看api文档吧,它是解释了每个参数的含义的
proxy - the proxy instance that the method was invoked on这是传入的代理对象,实际想调用的方法会封装给它(如果我没记错的话,工作几周了,根本没用过,所以可能有错,下同)
args - an array of objects containing the values of the arguments passed in the method invocation on the proxy instance, or null if interface method takes no arguments. Arguments of primitive types are wrapped in instances of the appropriate primitive wrapper class, such as java.lang.Integer or java.lang.Boolean.这个就是用来传method对象的参数的,如果没有就传null
登录百度帐号推荐应用Java反射--方法的参数是一个数组
jdk1.4和jdk1.5的invoke方法的区别
1.5:public Object invoke(Object obj,Object…args)
1.4:public Object invoke(Object obj,Object[] args)
以反射main方法为例:
启动Java程序的main方法的参数是一个字符串数组,即public static void main(String[]
args),通过反射方式来调用这个main方法时,如何为invoke方法传递参数呢?按jdk1.5的语法,整个数组是一个参数,而按jdk1.4的语法,数组中的每个元素对应一个参数,当把一个字符串数组作为参数传递给invoke方法时,javac会到底按照哪种语法进行处理呢?jdk1.5肯定要兼容jdk1.4的语法,会按jdk1.4的语法进行处理,即把数组打散成为若干个单独的参数。所以,在给main方法传递参数时,不能使用代码mainMethod.invoke(null,new
String[]{“xxx”}),javac只把它当作jdk1.4的语法进行理解,而不把它当作jdk1.5的语法解释,因此会出现参数类型不对的问题。
1. 重新构建一个object数组,那个参数数组作为为一的元素存在。
&& mainMethod.invoke(null,new
Object[]{new String[]{"xxx"}});
2.把数组看作一个object对象。
mainMethod.invoke(null,(Object)new String[]{"xxx"});
,编译器会作特殊处理,编译时不把参数当作数组看待,也就不会数组打散成若干个参数了
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 invoke参数 的文章

 

随机推荐