一个普通的实体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
相关文章:
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何通过建站之星自助学习解决操作问题?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
建站主机系统SEO优化与智能配置核心关键词操作指南
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何在建站之星绑定自定义域名?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何用已有域名快速搭建网站?
如何选择高性价比服务器搭建个人网站?
如何在自有机房高效搭建专业网站?
如何通过wdcp面板快速创建网站?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
如何通过西部数码建站助手快速创建专业网站?
微信h5制作网站有哪些,免费微信H5页面制作工具?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
如何通过VPS建站无需域名直接访问?
,石家庄四十八中学官网?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
如何通过VPS搭建网站快速盈利?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
建站之星如何一键生成手机站?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
建站之星上传入口如何快速找到?
制作门户网站的参考文献在哪,小说网站怎么建立?
如何在IIS中配置站点IP、端口及主机头?
建站之星后台密码遗忘或太弱?如何重置与强化?
定制建站是什么?如何实现个性化需求?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
如何做网站制作流程,*游戏网站怎么搭建?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
建站与域名管理如何高效结合?
如何选择高效响应式自助建站源码系统?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
香港服务器如何优化才能显著提升网站加载速度?
如何在云服务器上快速搭建个人网站?
如何配置支付宝与微信支付功能?
如何用VPS主机快速搭建个人网站?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
网站制作的步骤包括,正确网址格式怎么写?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何快速搭建高效香港服务器网站?
学校建站服务器如何选型才能满足性能需求?
如何快速搭建高效服务器建站系统?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
实例解析angularjs的filter过滤器
如何配置FTP站点权限与安全设置?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
怀化网站制作公司,怀化新生儿上户网上办理流程?
*请认真填写需求信息,我们会在24小时内与您取得联系。