admin管理员组

文章数量:1550528

/**
     * 判空方法,查询出来的字段如果为空的话,转为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