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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 逍遥小seng 中级黑马   /  2014-11-29 19:08  /  1304 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Person
{
        String name;
        private int age;
         Person(String name,int age)
        {
                this.name=name;
                this.age=age;
        }
}
问题是:为什么Constructor c = Person.class.getConstructor(String.class,int.class),会获取不到。
还有Field f = Person.class.getField("name");也获取不到。
都给成public就可以了,为什么?难道我漏掉了视频中老师说得话?
这里不用declared去反射。

3 个回复

倒序浏览
用public修饰
回复 使用道具 举报
Method getMethod(String name, Class<?>... parameterTypes)
          返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。
Field getField(String name)
          返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段。

API中说的很明确了,必须是公共成员方法或字段。要不就暴力反射

点评

谢谢了  发表于 2014-11-29 22:16
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马