黑马程序员技术交流社区

标题: java invoke问题 [打印本页]

作者: 曾辉    时间: 2012-2-3 16:06
标题: java invoke问题
bean 是一个实体对象
Object result = method.invoke(bean, (Object[])null);
搞不明白这句什么意思
作者: 梅雄新    时间: 2012-2-3 20:18
本帖最后由 梅雄新 于 2012-2-3 20:23 编辑

Object result = method.invoke(bean, (Object[])null);
上面的代码是通过反射调用类中的方法
其中method是反射得到的字节码中的方法
invoke方法的第一个参数为要操作的实例对象,这里用bean,第二个参数为反射的方法中的形参,由(Object[])null可知这里的反射方法是指对应类方法中无形参的那个方法
且由前面的Object result可以知道调用返回值为一个对象
作者: 张青峰    时间: 2012-2-5 10:17
你好,
Method类的invoke(Object obj,Object args[])方法接收的参数必须为对象,
  如果参数为基本类型数据,必须转换为相应的包装类型的对象。invoke()方法的返回值总是对象,
  如果实际被调用的方法的返回类型是基本类型数据,那么invoke()方法会把它转换为相应的包装类型的对象,
Object result = method.invoke(bean, (Object[])null);
这段程序的意思是:传入两个参数,一个是bean对象,一个是Object数组,传入的数组是空值,没有任何数据。invoke方法运行完之后,返回一个结果,将结果赋值给Object类型的result
希望对你有帮助.
作者: 王_涛    时间: 2012-2-5 14:33
Object result = method.invoke(bean, (Object[])null);
意思:
对象bean调用method方法
method方法的参数是(Object[])null
method方法的返回类型是Object  返回值赋给Obje类型result引用




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