如这样一个函数:
function(string v)
{
  a.v();
}想实现:V="fun1".就调用a.fun1();
V="fun2",就调用a.func2();
谢谢!!!

解决方案 »

  1.   

    a.getClass().getMethod(v, new Class[]{}).invoke(a, new Object[]{});
      

  2.   

    可以去看看java的反射机制
    主要是Class、Method这些个类
    都在java.lang.reflect.*这个包里面呢
      

  3.   

    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();