java中的反射,invoke方法详解 25

 我来答
李粑粑黝
2018-04-09 · TA获得超过5137个赞
知道小有建树答主
回答量:30
采纳率:100%
帮助的人:4158
展开全部

就是调用类中的方法,最简单的用法是可以把方法参数化,invoke(class, method)比如你Test类里有一系列名字相似的方法setValue1、setValue2等等。可以把方法名存进数组v[],然后循环里invoke(test,v[i]),就顺序调用了全部setValue

如:public class  MyTest{ public static void main(String[] args) { String [] names ={"tom","tim","allen","alice"};

 Class<?> clazz = Test.class; try   Method method = clazz.getMethod("sayHi", String.class);for(String name:names)method.invoke(clazz.newInstance(),name);} catch (NoSuchMethodException e) e.printStackTrace(); } catch (IllegalAccessExcepti e.printStackTrace( } catch (IllegalArgumentException  {e.printStackTrace();} catch (InvocationTargetException e)e.printStackTrace(); } catch (InstantiationException e {e.printStackTrace( }class Test{public void sayHi(String name){ System.out.println("Hi "+name); }

sun_wxb
2012-08-01 · TA获得超过264个赞
知道小有建树答主
回答量:648
采纳率:0%
帮助的人:476万
展开全部
private static void m9() throws Exception {
Class[] argClasses = new Class[] {String.class};
Object[] args = new Object[] {new String("world!")};
Method m = java.lang.String.class.getMethod("concat", argClasses);
String result = (String)m.invoke(new String("hello"), args);
System.out.println(result);
}
追问
m.invoke(new String("hello"), args);
invoke 具体都要传什么参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
人世情冷暖
2012-08-02 · 超过15用户采纳过TA的回答
知道答主
回答量:131
采纳率:0%
帮助的人:55.2万
展开全部
invoke方法详解 及实现循环的源代码 ,相信信息请看这里 http://blog.csdn.net/java958199586/article/details/6951882
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen2991101
2012-08-01 · TA获得超过198个赞
知道答主
回答量:89
采纳率:100%
帮助的人:56.6万
展开全部
根据万物皆对象,所以类也是对象,通过反射得到描述类的对象,也就是Class这个类。有三种方法得到:
类名.class;
实例.getclass;
Class.forName(全类名);
得到描述类的类后,就可以通过类里面的方法,字段和注解。
invoke是反射调用方法,方法里面有两个参数,第一个参数是调用这个方法的实例,第二个就是那个方法的参数类表
追问
请问 如果用 spring 的aop 获得到子类的bean对象 ,Method[] methods = test.getClass().getDeclaredMethods();用遍历invoke给子类对象的get方法赋值如何给父类bean的属性赋值呢!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式