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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贾振凯 中级黑马   /  2013-3-27 15:30  /  3042 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 贾振凯 于 2013-3-27 19:47 编辑
  1. Person p =new Person("jzk",23);
  2.                 String name = "name";
  3.                 PropertyDescriptor pd = new  PropertyDescriptor(name,p.getClass());
  4.                 Method getName = pd.getReadMethod();
  5.                 Object retVal = getName.invoke(p,(Object[])null); //这个地方提示让我把null强制转型为Object[],为什么?
  6.                 System.out.println(retVal);;
复制代码

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-27 19:42

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

4 个回复

倒序浏览
Person p =new Person("jzk",23);
        String name = "name";
        PropertyDescriptor pd = new  PropertyDescriptor(name,p.getClass());
        Method getName = pd.getReadMethod();
       // Object retVal = getName.invoke(p,(Object[])null); //这个地方提示让我把null强制转型为Object[],为什么?
        Object retVal = getName.invoke(p); //这里是读取数据,不需要加参数的。
                                                                        //getName.invoke(obj, args)这里的args是一个数组类型的参数,这是因为在JDK 1.5以前都是用一个数组来表示多个参数的,不过现在可以直接用可变参数了。
        
        System.out.println(retVal);;

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
itserious 发表于 2013-3-27 16:58
Person p =new Person("jzk",23);
        String name = "name";
        PropertyDescriptor pd = new  P ...

哦...........是不是类似于可变参数接受了0个参数?
回复 使用道具 举报
贾振凯 发表于 2013-3-27 17:57
哦...........是不是类似于可变参数接受了0个参数?

是可以这样理解,

如果底层方法是静态的,那么可以忽略指定的 obj 参数。该参数可以为 null。

如果底层方法所需的形参数为 0,则所提供的 args 数组长度可以为 0 或 null。
回复 使用道具 举报
看看·············
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马