admin管理员组文章数量:1596555
/**
* 判空方法,查询出来的字段如果为空的话,转为json格式是不包含那个字段的,需要手动设置成空字符串
*
* @param vo
* @return Object
* @throws Exception
*/
public static Object checkNull(Object vo) throws Exception {
Field[] field = vo.getClass().getDeclaredFields();
for (int i = 0; i < field.length; i++) {
field[i].setAccessible(true);
String name = field[i].getName();
String type = field[i].getGenericType().toString();
name = name.replaceFirst(name.substring(0, 1), name.substring(0, 1)
.toUpperCase());
//这里默认传的是String类型
if (type.equals("class java.lang.String")) {
// 如果type是类类型,则前面包含"class ",后面跟类名
Method m = vo.getClass().getMethod("get" + name);
// 调用getter方法获取属性值
String value = (String) m.invoke(vo);
if (value == null) {
field[i].set(vo, field[i].getType().getConstructor(field[i].getType()).newInstance(""));
}
//如果是其他类型的话,如ReimRepay里面的List<ReimDonorInfo>,则继续递归下去
} else {
Method m = vo.getClass().getMethod("get" + name);
// 调用getter方法获取属性值
List<Object> value = (List<Object>) m.invoke(vo);
List<Object> newList = new ArrayList<>();
if (value != null && value.size() > 0) {
for (int i1 = 0; i1 < value.size(); i1++) {
Object o = checkNull(value.get(i1));
newList.add(o);
}
}
if (newList.size() == 0) {
field[i].set(vo, new ArrayList<>());
} else {
field[i].set(vo, newList);
}
}
}
return vo;
}
版权声明:本文标题:checkNull方法,查出来的数据如果为空的话改为空字符串 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1727248778a1104969.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论