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

发布时间 - 2026-01-11 02:09:00    点击率:

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 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  Laravel集合Collection怎么用_Laravel集合常用函数详解  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  Java垃圾回收器的方法和原理总结  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  JavaScript实现Fly Bird小游戏  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  长沙做网站要多少钱,长沙国安网络怎么样?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Laravel如何创建自定义Facades?(详细步骤)  百度浏览器如何管理插件 百度浏览器插件管理方法  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  轻松掌握MySQL函数中的last_insert_id()  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  lovemo网页版地址 lovemo官网手机登录  如何在Windows 2008云服务器安全搭建网站?  php结合redis实现高并发下的抢购、秒杀功能的实例  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  JavaScript模板引擎Template.js使用详解  如何在橙子建站上传落地页?操作指南详解  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  如何在IIS7中新建站点?详细步骤解析  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  如何彻底卸载建站之星软件?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  如何在阿里云部署织梦网站?  如何撰写建站申请书?关键要点有哪些?  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  开心动漫网站制作软件下载,十分开心动画为何停播?  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  Laravel如何为API编写文档_Laravel API文档生成与维护方法  JavaScript中的标签模板是什么_它如何扩展字符串功能  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Laravel如何保护应用免受CSRF攻击?(原理和示例)  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  北京专业网站制作设计师招聘,北京白云观官方网站?