java class 中有一个方法invoke(Object obj,Object... args)

J&Y&M&Z 2010-07-15 09:47:18
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 参数可以为空,而我所要用的方法也是没有参数的方法,但运行就报空指针异常。。。真不理解,想看看大家有没有遇到过。
...全文
754 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangyeee 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zzj521zxn 的回复:]

那如果这个method不是static那第一个参数怎么设置呢??谢谢
[/Quote]
那就是传入你想对哪个类进行方法调用,比如要调用Object.toString():

Class object;
Method toString;
toString.invoke(object, new Object[0]);

顺便给自己打广告:
http://blog.csdn.net/wangyeee/archive/2010/07/05/5714474.aspx
BearKin 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 zzj521zxn 的回复:]
引用 5 楼 bao110908 的回复:
引用 2 楼 zzj521zxn 的回复:
那如果这个method不是static那第一个参数怎么设置呢??谢谢


null


如果为空那绝对会报空指针的
我觉得还是把调用方法修改成为静态的比较容易一定 也不会出什么错误
现在已经不出问题了
[/Quote]

如果你使用的是静态方法放NULL就可以 如果是对象方法必须给他提供一个对象放在里面 果子大神说的很清楚了
J&Y&M&Z 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bao110908 的回复:]
引用 2 楼 zzj521zxn 的回复:
那如果这个method不是static那第一个参数怎么设置呢??谢谢


null
[/Quote]

如果为空那绝对会报空指针的
我觉得还是把调用方法修改成为静态的比较容易一定 也不会出什么错误
现在已经不出问题了
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zzj521zxn 的回复:]
那如果这个method不是static那第一个参数怎么设置呢??谢谢
[/Quote]

null
  • 打赏
  • 举报
回复
第一个参数是在哪个对象上调用这个方法。

比如:Student 有个 learn 方法,那第一个参数就是 Student 的实例对象。


第二个参数从 JDK 5 开始改为变参了(之前版本是 Object 数组),表示方法参数。如果是 JDK 5 或以上版本且方法没有参数时,第二个参数可以不填(变参的数量可以为 0);如果是 JDK 5 以下版本且方法没有参数时,应使用 new Object[0]。
lzh_me 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zzj521zxn 的回复:]
那如果这个method不是static那第一个参数怎么设置呢??谢谢
[/Quote]
可以传入类对象
J&Y&M&Z 2010-07-15
  • 打赏
  • 举报
回复
那如果这个method不是static那第一个参数怎么设置呢??谢谢
ChDw 2010-07-15
  • 打赏
  • 举报
回复
第一个参数可以为null,但是前提是这个method是static的
如果没有参数,第二个参数也不应该为null,应该为new Object[0]

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧