分享

用java反射机制获取javabean中是私有属性

 Blex 2011-05-12
public   class   TestReflect   { 
           public   static   void   main(String[]   args){ 
                      APerson   a=new   APerson(); 
                      Field   fields[]   =   a.getClass().getDeclaredFields(); 
                      String[]   name   =   new   String[fields.length]; 
                      Object[]   value   =   new   Object[fields.length]; 
                            
                      try{
                                Field.setAccessible(fields,   true);
                                for   (int   i   =   0;   i   <   name.length;   i++)   { 
                                       name[i]   =   fields[i].getName(); 
                                       System.out.println(name[i]   +   "-> "); 
                                       value[i]   =   fields[i].get(a); 
                                       System.out.println(value[i]); 
                                } 
                      } 
                      catch(Exception   e){ 
                               e.printStackTrace(); 
                      } 
          }
}

class   APerson{ 
                private  String   name; 
                private  String   sex; 
                private   int   age; 

                APerson(){ 
                       name= "John "; 
                       sex= "男 "; 
                       age=45; 
                }

                public   int   getAge()   {
                                return   age;
                }
                public   void   setAge(int   age)   {
                                this.age   =   age;
                }
                public   String   getName()   {
                                return   name;
                }
                public   void   setName(String   name)   {
                                this.name   =   name;
                }
                public   String   getSex()   {
                                return   sex;
                }
                public   void   setSex(String   sex)   {
                                this.sex   =   sex;
                }
}
 

以上代码中,Field.setAccessible(fields,   true); 是最为关键的一点。

在使用java反射机制获取 JavaBean 的属性值时,如果该属性被声明为private 的,需要将setAccessible设置为true. 默认的值为false.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多