博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
反射动态获取和设置对象的值
阅读量:6442 次
发布时间:2019-06-23

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

hot3.png

在做解析XML时候经常要将数据转换成为对象,手动设置对象每个属性的值太麻烦了,而且属性太多时经常漏掉,所以在不十分在意效率的情况下偷懒一下

/**

* 将对象转换为map
* @param rgxBean
* @return
* @throws IllegalArgumentException
* @throws IllegalAccessException
*/
private Map<String,Object> convertMap(Object obj) throws IllegalArgumentException, IllegalAccessException{
Map<String,Object> map=new HashMap<String,Object>();
Field[] fields=obj.getClass().getDeclaredFields();
for(Field field:fields){

field.setAccessible(true);

map.put(field.getName(), field.get(rgxBean));

field.setAccessible(false);

}
return map;
}
/**
* 将Map转换成为对象
* @param map
* @return
* @throws IllegalArgumentException
* @throws IllegalAccessException
*/
private Object convertObj(Map<String,Object> map) throws IllegalArgumentException, IllegalAccessException{
Object obj=new Object();
Field[] fields=obj.getClass().getDeclaredFields();
for(Field field:fields){
field.setAccessible(true);
field.set(obj, map.get(field.getName()));
field.setAccessible(false);
}
return obj;
}

转载于:https://my.oschina.net/linuxred/blog/28826

你可能感兴趣的文章
关于C#静态构造函数的几点说明
查看>>
理解C# 4 dynamic(4) – 让人惊艳的Clay
查看>>
ipv6的一些问题
查看>>
Spring - Java-based configuration: Using @Configuration
查看>>
使用Envoy 作Sidecar Proxy的微服务模式-2.超时和重试
查看>>
node.js初体验之利用node.js的fs-文件系统,来写一个批量修改文件名的小工具
查看>>
数据流被污染?数据质量不高?蚂蚁金服数据资产管理平台了解一下
查看>>
我所理解的原型&原型链
查看>>
在项目中遇到的一些bug
查看>>
微服务前端开发框架React-Admin
查看>>
阿里云宣布 Serverless 容器服务 弹性容器实例 ECI 正式商业化
查看>>
让看不见的AI算法,助你拿下看得见的广阔市场
查看>>
polarphp:一个新的 PHP 语言运行时环境
查看>>
webpack的简单实例学习
查看>>
go-callvis 代码分析工具
查看>>
如何在网络视听行业建一扇内容安全大门?
查看>>
阿里云重磅推出物联网设备身份认证Link ID²
查看>>
作为数据科学家,我都有哪些弱点?
查看>>
JavaScript数据精度缺失问题
查看>>
百度开源情感分析Senta,让你更懂用户
查看>>