博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用java反射机制获取javabean中的私有属性
阅读量:6268 次
发布时间:2019-06-22

本文共 1083 字,大约阅读时间需要 3 分钟。

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.

转载于:https://www.cnblogs.com/cookray/archive/2011/06/20/2085337.html

你可能感兴趣的文章
Flume负载均衡配置
查看>>
Ajax详解
查看>>
Ubuntu C/C++开发环境的安装和配置
查看>>
百世汇通快递地区选择插件,单独剥离
查看>>
Linux系统调用---同步IO: sync、fsync与fdatasync【转】
查看>>
【MyBatis学习06】输入映射和输出映射
查看>>
[LeetCode] Decode String 解码字符串
查看>>
数字逻辑的一些基本运算和概念
查看>>
ant重新编译打包hadoop-core-1.2.1.jar时遇到的错
查看>>
【★★★★★】提高PHP代码质量的36个技巧
查看>>
3 weekend110的配置hadoop(格式化) + 一些问题解决 + 未免密码配置
查看>>
JavaScript Creating 对象
查看>>
Java compiler level does not match the version of the installed Java project facet.(转)
查看>>
WPF MediaElement.Position属性
查看>>
sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)
查看>>
spring mysql多数据源配置
查看>>
[React] Override webpack config for create-react-app without ejection
查看>>
检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。...
查看>>
测试java的父子类化
查看>>
HDOJ 1008
查看>>