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邮件验证流程与配置
北京专业网站制作设计师招聘,北京白云观官方网站?

