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
相关文章:
营销式网站制作方案,销售哪个网站招聘效果最好?
如何在万网开始建站?分步指南解析
代购小票制作网站有哪些,购物小票的简要说明?
如何做网站制作流程,*游戏网站怎么搭建?
5种Android数据存储方式汇总
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
如何在建站主机中优化服务器配置?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
建站之星安装需要哪些步骤及注意事项?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
临沂网站制作企业,临沂第三中学官方网站?
建站之星代理商如何保障技术支持与售后服务?
如何选择网络建站服务器?高效建站必看指南
如何选择香港主机高效搭建外贸独立站?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
建站主机是什么?如何选择适合的建站主机?
建站之星免费模板:自助建站系统与智能响应式一键生成
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
浅析上传头像示例及其注意事项
头像制作网站在线制作软件,dw网页背景图像怎么设置?
制作网站外包平台,自动化接单网站有哪些?
,网站推广常用方法?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
javascript基本数据类型及类型检测常用方法小结
深圳网站制作的公司有哪些,dido官方网站?
上海网站制作开发公司,上海买房比较好的网站有哪些?
建站之星代理平台如何选择最佳方案?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
家庭建站与云服务器建站,如何选择更优?
教学论文网站制作软件有哪些,写论文用什么软件
?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
如何用wdcp快速搭建高效网站?
平台云上自主建站:模板化设计与智能工具打造高效网站
官网建站费用明细查询_企业建站套餐价格及收费标准指南
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
如何挑选优质建站一级代理提升网站排名?
如何基于PHP生成高效IDC网络公司建站源码?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
大连网站制作公司哪家好一点,大连买房网站哪个好?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
潮流网站制作头像软件下载,适合母子的网名有哪些?
完全自定义免费建站平台:主题模板在线生成一站式服务
如何零成本快速生成个人自助网站?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
*请认真填写需求信息,我们会在24小时内与您取得联系。