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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 菠萝鱼 中级黑马   /  2014-2-17 22:11  /  913 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

首先定义一个类
public class Person {
        private  String name ;
        protected String adree;
        public Person(){}
        public Person(String name, String adree) {
                this.name = name;
                this.adree = adree;
        }
}

定义主函数
public static void main(String[] args) throws Exception {
                Person p=new Person("张三", "黑龙江");
                Field[] f=Person.class.getFields();
                for (Field field : f) {
                        if(field.getType()==String.class){
                                String s=(String)field.get(p);
                                System.out.print(s);
                        }
                }
        }

Field[] f=Person.class.getFields(); 这句代码只有在Person类的属性设置成public时才能获取到,protected ,private修饰后为什么获取不到?


评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

5 个回复

倒序浏览
getField(String name) 返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段
这个方法只能返回public的

回复 使用道具 举报
getDeclaredFields() 返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报 1 0
一年_Hei 来自手机 中级黑马 2014-2-17 23:19:41
板凳
楼上正解
回复 使用道具 举报
谢谢 程澄
回复 使用道具 举报
....... 来自手机 中级黑马 2014-2-19 10:54:32
地板
楼上正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马