java.lang.reflect.Method
public Object invoke(Object obj,Object... args)
参数:
obj - 从中调用底层方法的对象
args - 用于方法调用的参数  
返回:
使用参数 args 在 obj 上指派该对象所表示方法的结果  在class类中有这个方法
我写的代码:
 Class c= Class.forName(le2);
 Method m[] = c.getDeclaredMethods();
 m[0].invoke(null,null);//m[0]得到的是这个类的第一个方法 我想问下里面的那两个参数到底是什么意思  ,我去看过API 参数可以为空,而我所要用的方法也是没有参数的方法,但运行就报空指针异常真不理解,想看看大家有没有遇到过。

解决方案 »

  1.   

    第一个参数可以为null,但是前提是这个method是static的
    如果没有参数,第二个参数也不应该为null,应该为new Object[0]
      

  2.   

    那如果这个method不是static那第一个参数怎么设置呢??谢谢
      

  3.   

    第一个参数是在哪个对象上调用这个方法。比如:Student 有个 learn 方法,那第一个参数就是 Student 的实例对象。
    第二个参数从 JDK 5 开始改为变参了(之前版本是 Object 数组),表示方法参数。如果是 JDK 5 或以上版本且方法没有参数时,第二个参数可以不填(变参的数量可以为 0);如果是 JDK 5 以下版本且方法没有参数时,应使用 new Object[0]。
      

  4.   


    如果你使用的是静态方法放NULL就可以 如果是对象方法必须给他提供一个对象放在里面 果子大神说的很清楚了
      

  5.   

    那就是传入你想对哪个类进行方法调用,比如要调用Object.toString():Class object;
    Method toString;
    toString.invoke(object, new Object[0]);顺便给自己打广告:
    http://blog.csdn.net/wangyeee/archive/2010/07/05/5714474.aspx