a.getClass().getMethod(v, new Class[]{}).invoke(a, new Object[]{}); ^ 1.getClass()得到a的Class对象 2.getMethod(v,new Class[]{})得到a的名为v的不带参数的方法 如果要得到带参数的比如v(String var,int int)这样的方法,可以写成getMethod(v,new Class[]{String.class,int}) 3.invoke(a, new Object[]{}) 调用方法,第一个参数是要调用这个方法的对象,如果方法是static的,这个参数可以为null new Object[]{}就是你调用这个方法时要传的参数,因为是空方法,所以没有参数,但是必须写成这样,不能为null 如果有参数就把参数传进去,比如上面的例子就要写成 invoke(a, new Object[]{new String("var1"),new Integer(1)})总之就是相当于a.v();
主要是Class、Method这些个类
都在java.lang.reflect.*这个包里面呢
^
1.getClass()得到a的Class对象
2.getMethod(v,new Class[]{})得到a的名为v的不带参数的方法
如果要得到带参数的比如v(String var,int int)这样的方法,可以写成getMethod(v,new Class[]{String.class,int})
3.invoke(a, new Object[]{})
调用方法,第一个参数是要调用这个方法的对象,如果方法是static的,这个参数可以为null
new Object[]{}就是你调用这个方法时要传的参数,因为是空方法,所以没有参数,但是必须写成这样,不能为null
如果有参数就把参数传进去,比如上面的例子就要写成
invoke(a, new Object[]{new String("var1"),new Integer(1)})总之就是相当于a.v();