全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java基础将Bean属性值放入Map中的实例

Java基础将Bean属性值放入Map中的实例

利用发射将Java对象的属性值以属性名称为键,存储到Map中的简单实现。包括自身属性及从父类继承得到的属性。Java类型的getField[s]方法只能获取public 类型的属性,getDeclaredFields则能获取所有声明的属性,同时,如果类的可见性非公有,则Field的get(Object)方法将取不到具体的属性值。

package com.wood.util; 
 
import java.lang.reflect.Field; 
import java.util.HashMap; 
import java.util.Map; 
 
/** 
*  
* @ClassName: BeanToMapUtils 
* @Description: TODO 
* @author  wood 
* @date   2014-10-31 下午09:52:41 
* 
 */ 
public class BeanToMapUtils { 
  /** 
   * getFileds获取所有public 属性<br/> 
   * getDeclaredFields 获取所有声明的属性<br/> 
   * @param bean 
   * @return 将某个类及其继承属性全部添加到Map中 
   */ 
  public static Map<String,Object> beanToMap(Object bean){ 
    Map<String,Object> result = new HashMap<String,Object>(); 
    if(bean==null){ 
      return result; 
    } 
     
    Field[] fields = bean.getClass().getDeclaredFields(); 
    if(fields==null||fields.length==0){ 
      return result; 
    } 
     
    for(Field field:fields){ 
      //重置属性可见(而且一般属性都是私有的),否则操作无效 
      boolean accessible = field.isAccessible(); 
      if(!accessible){ 
        field.setAccessible(true); 
      } 
       
      //获取属性名称及值存入Map 
      String key = field.getName(); 
      try { 
        result.put(key, field.get(bean)); 
      } catch (IllegalArgumentException e) { 
        e.printStackTrace(); 
      } catch (IllegalAccessException e) { 
        e.printStackTrace(); 
      } 
       
      //还原属性标识 
      field.setAccessible(accessible); 
    } 
     
    //获取父类属性 
    fields = bean.getClass().getSuperclass().getDeclaredFields(); 
    if(fields==null||fields.length==0){ 
      return result; 
    } 
     
    for(Field field:fields){ 
      //重置属性可见(而且一般属性都是私有的),否则操作无效 
      boolean accessible = field.isAccessible(); 
      if(!accessible){ 
        field.setAccessible(true); 
      } 
       
      //获取属性名称及值存入Map 
      String key = field.getName(); 
      try { 
        result.put(key, field.get(bean)); 
      } catch (IllegalArgumentException e) { 
        e.printStackTrace(); 
      } catch (IllegalAccessException e) { 
        e.printStackTrace(); 
      } 
       
      //还原属性标识 
      field.setAccessible(accessible); 
    } 
     
    return result; 
  } 
   
  public static void main(String[] args) { 
    Dog info = new Dog(); 
    info.setCountry("cc"); 
    info.setName("Dog"); 
     
    info.setCategory("gram"); 
    info.setOwner("wang"); 
     
    System.out.println(beanToMap(info)); 
  } 
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Java将Bean属性值放入Map  # java  # bean  # 放入map  # Java cglib为实体类(javabean)动态添加属性方式  # java 基础之JavaBean属性命名规范问题  # JSP JavaBean的setProperty属性  # Java循环对bean的属性进行赋值的实现  # 都是  # 希望能  # 谢谢大家  # 则能  # 下午  # 见性  # 非公有  # 类属  # date  # author  # Description  # BeanToMapUtils  # TODO  # ClassName  # HashMap  # getFileds  # br  # lt  # reflect  # getDeclaredFields 


相关文章: 建站之星多图banner生成与模板自定义指南  广州商城建站系统开发成本与周期如何控制?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  建站之星如何开启自定义404页面避免用户流失?  高防服务器:AI智能防御DDoS攻击与数据安全保障  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  建站之星logo尺寸如何设置最合适?  建站之星代理平台如何选择最佳方案?  如何在IIS服务器上快速部署高效网站?  如何选择香港主机高效搭建外贸独立站?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  建站为何优先选择香港服务器?  如何通过.red域名打造高辨识度品牌网站?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  建站之星价格显示格式升级,你的预算足够吗?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  长沙做网站要多少钱,长沙国安网络怎么样?  如何做静态网页,sublimetext3.0制作静态网页?  如何用IIS7快速搭建并优化网站站点?  一键网站制作软件,义乌购一件代发流程?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  建站之星下载版如何获取与安装?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  PHP正则匹配日期和时间(时间戳转换)的实例代码  再谈Python中的字符串与字符编码(推荐)  如何登录建站主机?访问步骤全解析  智能起名网站制作软件有哪些,制作logo的软件?  大同网页,大同瑞慈医院官网?  微信小程序 五星评分(包括半颗星评分)实例代码  Thinkphp 中 distinct 的用法解析  如何设计高效校园网站?  如何用搬瓦工VPS快速搭建个人网站?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  建站之星2.7模板快速切换与批量管理功能操作指南  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何快速生成高效建站系统源代码?  如何通过多用户协作模板快速搭建高效企业网站?  音乐网站服务器如何优化API响应速度?  学校为何禁止电信移动建设网站?  建站之星代理如何优化在线客服效率?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?  如何在自有机房高效搭建专业网站?  大连网站设计制作招聘信息,大连投诉网站有哪些?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  定制建站价位费用解析与套餐推荐全攻略  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。