黑马程序员技术交流社区

标题: 关于反射中Method类获取无参数的方法问题 [打印本页]

作者: 黄昆    时间: 2012-7-17 23:59
标题: 关于反射中Method类获取无参数的方法问题
import java.lang.reflect.Method;

class DemoClass {
   public void run()
   {
    System.out.println("hello java");
    }   
}
public class ReflectDemo {
public static void main(String[] args)throws Exception {
  Method run=Class.forName(ReflectDemo).getMethod("run", ???);//getMethod(name, parameterTypes)此处获取的方法无参数,那么parameterTypes着个类型该怎么设置呢?
  run.invoke(???);//invoke(obj, args)此时???的值有该怎么设置呢?
  
  
}
}

作者: 陈云帆    时间: 2012-7-18 00:06
都有重载的方法,直接写成???);//getMethod(name)就是无参方法,写成getMethod(name,null)也行,其实在Method 方法内部getMethod(name)掉的就是getMethod(name,null)这两种方法是等价的。
作者: 乞文超    时间: 2012-7-18 00:27
parameterTypes 参数是按声明顺序标识该方法形参类型的 Class 对象的一个数组。如果 parameterTypes 没有参数,我们可以设置为null,按空数组处理。
对于invoke的方法调用:
如果底层方法是静态的,那么可以忽略指定的 obj 参数。该参数可以为 null。
如果底层方法所需的形参数为 0,则所提供的 args 数组长度可以为 0 或 null





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2