1.需求:Java后端返给vue前端一个实体类,当实体类中的字段值为null时,该字段不返回,导致前端取值时报undefined错误。
2.方法:利用反射,获取实体类中的属性名,判断属性值,为null时,利用set方法赋值为空字符串“”,代码如下:
private Pojo getcheckMapValue(Pojo model) throws Exception {
Field[] field = model.getClass().getDeclaredFields();
// 遍历所有属性
for (int j = 0; j < field.length; j++) {
// 获取属性的名字
String name = field[j].getName();
// 将属性的首字符大写,方便构造get,set方法
name = name.substring(0, 1).toUpperCase() + name.substring(1);
if ("FIELDNUM".equalsIgnoreCase(name)) {
break;
}
Method m = model.getClass().getMethod("get" + name);
// 调用getter方法获取属性值
Object value = (Object) m.invoke(model);
if (value == null) {
m = model.getClass().getMethod("set" + name, String.class);
m.invoke(model, "");
}
}
return model;
}