当我们的 Java 对象在响应前端,或者在做数据导出的时候,我们并不希望将对象中为 null 的属性值直接返回给前端,不然显示或导出的就是一个 null ,这样对用户不是很友好。

如果我们一个个字段的去处理,这样不但增加了人力,而且使得代码中逻辑冗余,显得不够优雅。

于是下面我写了一个通用方法:将对象中的 String 类型属性的 null 值转换为空字符串的方法,具体代码如下:

/*** 把对象中的 String 类型的null字段,转换为空字符串* * @param <T> 待转化对象类型* @param cls 待转化对象* @return 转化好的对象*/
public static <T> T noNullStringAttr(T cls) {Field[] fields = cls.getClass().getDeclaredFields();if (fields == null || fields.length == 0) {return cls;}for (Field field : fields) {if ("String".equals(field.getType().getSimpleName())) {field.setAccessible(true);try {Object value = field.get(cls);if (value == null) {field.set(cls, "");}} catch (IllegalArgumentException | IllegalAccessException e) {e.printStackTrace();}}}return cls;
}

下面是效果:

【方法处理前】

在没有调用方法前,user 中未设置的字段值为 null

【方法处理后】

可以看到,我们调用上面的方法后,null 字段就消失了,变为了空字符串。

工具方法:一次性将对象中所有null字段,转为空字符串相关推荐

  1. Extjs 判断对象是非为null或者为空字符串

    Ext.isEmpty(str,[allowEmptyString]) 如果str为 null undefined a zero-length array a zero-length string ( ...

  2. java get null_java 获取对象中为null的字段实例代码

    下面一段简单的代码给大家分享java 获取对象中为null的字段,具体代码如下所述: private static String[] getNullPropertyNames(Object sourc ...

  3. 如何获取数组中嵌套对象中属性值不为空的对象?

    如何获取数组中嵌套对象中属性值不为空的对象? 有一个对象数组如下: let arr = [ {id:1,aa:'aa1'}, {id:2,aa:'aa2',bb:{ cc:{dd:12} }}, {i ...

  4. mysql 小写null 大写null_mysql中的null字段值的处理及大小写问题

    在MySQL中,NULL字段的处理,需要注意,当在处理查询条件中有NULL,很有可能你得到的值不是想要的,因为,在MySQL中,判断NULL值相等(=)或者不等(!=)都会返回false.主要出现在常 ...

  5. jeecg中excel导出字段判空处理

    jeecg中excel导出字段判空处理 我们清楚,jeecg 导出 excel 采用的是 easypoi,不知道是否遇到过这种情况: 我们以一个实体属性为例: @Excel(name="问题 ...

  6. webapi json返回值null替换为空字符串

    .netcore webapi json返回值序列化null替换为空字符串 场景:数据库中部分表字段允许空值,则代码中实体类对应的字段类型为可空类型Nullable<>,如int?,Dat ...

  7. java null 转空_java 对象属性为 null 值转为 空串

    相信大家一定在开发中见过并且写过类似这样的代码: public Book getBook(int id) { if (id < 0) { return null; } return new Bo ...

  8. java对象序列化去掉字段_使用序列化查找对象中的脏字段

    java对象序列化去掉字段 假设您正在开发一个将对象自动保存到数据库中的框架. 您需要检测两次保存之间所做的更改,以便仅保存已修改的字段. 如何检测脏场. 最简单的方法是遍历原始数据和当前数据,并分别 ...

  9. 使用序列化查找对象中的脏字段

    假设您正在开发一个将对象自动保存到数据库中的框架. 您需要检测两次保存之间所做的更改,以便仅保存修改过的字段. 如何检测脏场. 最简单的方法是遍历原始数据和当前数据,并分别比较每个字段. 代码如下: ...

最新文章

  1. bat递归查找指定文件_dos命令find图文教程,查找搜索文件文本字符串,bat批处理脚本...
  2. 孙鑫VC++课程中用到的函数一览
  3. [转载]Eclipse SVN插件比较 Subclipse vs Subversive
  4. poj 1384 完全背包
  5. Candy Box (easy version)
  6. 【题解】大床Nim (2019,5.23)
  7. C语言序列是否有序、序列中删除指定数字、序列中整数去重、有序序列合并问题
  8. EZchip将推全球首款100核64位ARM A-53芯片
  9. 格式化表单js插件jquery.serializeJSON
  10. springmvc01
  11. Prototype使用$A()函数
  12. 经纬度距离计算小工具_一个NB工具大合集打网站,总有一款是你需要的
  13. BI项目规划的四个建议
  14. 人工智能商用成果落地撬动AI未来
  15. 「秘」那些管UI小姐姐要来的网站
  16. java项目第12期-淘客系统源码(安卓+IOS+java后端)【毕业设计】
  17. 关于iOS 报Command failed with exit 128: git错误额解决方案
  18. 阿里云Docker仓库
  19. System.Runtime.InteropServices.InvalidComObjectException:“COM 对象与其基础 RCW 分开后就不能再使用。”报错解决
  20. 【数说】人气网文修炼手册之最深的网文套路知多少

热门文章

  1. python统计图片的纹理信息_python实现LBP方法提取图像纹理特征实现分类
  2. textarea 手机端无法换行_处理textarea中的换行和空格
  3. 使用python对数据集进行批量转移
  4. 如何把数百个列数不定但格式相同的 Excel 汇总合计
  5. 您应该认识的8大Java人
  6. 用Visual Basic实现Office助手
  7. 记一次easyui使用calendar日期插件实现日期多选
  8. 暗黑2服务器修改,暗黑2服务器频道LOGO制作教程
  9. SAP S4 资产主数据中的科目定位码
  10. CSS控制表格tr之间的边距