一个普通的实体Person:
private int id; private String name; private Date createdTime; ... //其它字段 // get set方法 ...............
现在需要把通过webService传过来的实体Person里面的所有字段的null值,换成""
实现思路:
1.获取实体的所有字段,遍历
2.获取字段类型
3.调用字段的get方法,判断字段值是否为空
4.如果字段值为空,调用字段的set方法,为字段赋值
code:
Field[] field = model.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组
try {
for (int j = 0; j < field.length; j++) { // 遍历所有属性
String name = field[j].getName(); // 获取属性的名字
name = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法
String type = field[j].getGenericType().toString(); // 获取属性的类型
if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名
Method m = model.getClass().getMethod("get" + name);
String value = (String) m.invoke(model); // 调用getter方法获取属性值
if (value == null) {
m = model.getClass().getMethod("set"+name,String.class);
m.invoke(model, "");
}
}
if (type.equals("class java.lang.Integer")) {
Method m = model.getClass().getMethod("get" + name);
Integer value = (Integer) m.invoke(model);
if (value == null) {
m = model.getClass().getMethod("set"+name,Integer.class);
m.invoke(model, 0);
}
}
if (type.equals("class java.lang.Boolean")) {
Method m = model.getClass().getMethod("get" + name);
Boolean value = (Boolean) m.invoke(model);
if (value == null) {
m = model.getClass().getMethod("set"+name,Boolean.class);
m.invoke(model, false);
}
}
if (type.equals("class java.util.Date")) {
Method m = model.getClass().getMethod("get" + name);
Date value = (Date) m.invoke(model);
if (value == null) {
m = model.getClass().getMethod("set"+name,Date.class);
m.invoke(model, new Date());
}
}
// 如果有需要,可以仿照上面继续进行扩充,再增加对其它类型的判断
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# 反射机制
# 反射机制实例
# 反射机制获取数据
# java反射机制根据属性名获取属性值的操作
# Java通过反射机制动态设置对象属性值的方法
# java的基本数据类型及属性
# Java如何通过反射机制获取数据类对象的属性及方法
# 遍历
# 希望能
# 谢谢大家
# 一个普通
# 值为
# 为空
# 实体类
# InvocationTargetException
# br
# null
# code
# Field
相关文章:
建站之星如何配置系统实现高效建站?
香港网站服务器数量如何影响SEO优化效果?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
seo网站制作优化,网站SEO优化步骤有哪些?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
建站之星各版本价格是多少?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
建站之星官网登录失败?如何快速解决?
,制作一个手机app网站要多少钱?
如何快速上传自定义模板至建站之星?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
高端企业智能建站程序:SEO优化与响应式模板定制开发
东莞专业制作网站的公司,东莞大学生网的网址是什么?
建站之星与建站宝盒如何选择最佳方案?
如何零基础开发自助建站系统?完整教程解析
网站制作话术技巧,网站推广做的好怎么话术?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
如何通过cPanel快速搭建网站?
宁波自助建站系统如何快速打造专业企业网站?
香港服务器租用每月最低只需15元?
常州自助建站工具推荐:低成本搭建与模板选择技巧
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
如何通过远程VPS快速搭建个人网站?
寿县云建站:智能SEO优化与多行业模板快速上线指南
如何在Windows 2008云服务器安全搭建网站?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
,网页ppt怎么弄成自己的ppt?
建站之星如何通过成品分离优化网站效率?
如何基于云服务器快速搭建个人网站?
如何选择美橙互联多站合一建站方案?
如何快速搭建支持数据库操作的智能建站平台?
微信小程序 五星评分(包括半颗星评分)实例代码
如何在云指建站中生成FTP站点?
北京网站制作的公司有哪些,北京白云观官方网站?
建站三合一如何选?哪家性价比更高?
如何用搬瓦工VPS快速搭建个人网站?
内部网站制作流程,如何建立公司内部网站?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
,sp开头的版面叫什么?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
Thinkphp 中 distinct 的用法解析
建站之星如何实现PC+手机+微信网站五合一建站?
Python路径拼接规范_跨平台处理说明【指导】
如何通过FTP空间快速搭建安全高效网站?
linux top下的 minerd 木马清除方法
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
*请认真填写需求信息,我们会在24小时内与您取得联系。