A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄昆 中级黑马   /  2012-7-17 23:59  /  3420 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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)此时???的值有该怎么设置呢?
  
  
}
}

2 个回复

倒序浏览
都有重载的方法,直接写成???);//getMethod(name)就是无参方法,写成getMethod(name,null)也行,其实在Method 方法内部getMethod(name)掉的就是getMethod(name,null)这两种方法是等价的。
回复 使用道具 举报
parameterTypes 参数是按声明顺序标识该方法形参类型的 Class 对象的一个数组。如果 parameterTypes 没有参数,我们可以设置为null,按空数组处理。
对于invoke的方法调用:
如果底层方法是静态的,那么可以忽略指定的 obj 参数。该参数可以为 null。
如果底层方法所需的形参数为 0,则所提供的 args 数组长度可以为 0 或 null

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马