java反射实现前端接收实体对象,去除“null”字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java反射实现前端接收实体对象,去除“null”字符串相关的知识,希望对你有一定的参考价值。

从前台输入的的json 格式数据。转换成对应的实体类后。 可能会出现把null 转换成“null”字符串。这样的数据在存入数据库是可能会因为数据格式,存入时会有问题。实体字段多,修改有很麻烦。所以需要统一编辑处理下。

实体类
package com.tansun.ider.model.vo;

public class XXXXVO {
private String returnCode;
private String customerNo;
public String getReturnCode() {
return returnCode;
}
public void setReturnCode(String returnCode) {
this.returnCode = returnCode;
}
public String getCustomerNo() {
return customerNo;
}
public void setCustomerNo(String customerNo) {
this.customerNo = customerNo;
}

@Override
public String toString() {
    return "XXXXVO [returnCode=" + returnCode + ", customerNo=" + customerNo + "]";
}

}

数据转换类

/**
 * 把vo类中String类型的参数的null值或"NULL","null"转化成空字符串
 * @param obj
 * @return
 */
public static Object getReflectObjectTransString(Object obj) throws Exception{
    Class<? extends Object> classz = obj.getClass();
    Field[] fields=classz.getDeclaredFields();
    for(Field field:fields){
        if(String.class == field.getType()){
            // 属性参数值首字母转成大写
            char[] cs=(field.getName()).toCharArray();
            cs[0]-=32;
            String methodGetName = "get"+String.valueOf(cs);
            String methodSetName = "set"+String.valueOf(cs);
            Method getMethod = classz.getMethod(methodGetName, null);
            Method setMethod = classz.getMethod(methodSetName, String.class);
            Object value = getMethod.invoke(obj, null);
            if(null == value || "NULL".equals((String)value) || "null".equals((String)value))
            {
                setMethod.invoke(obj, "");
            }
        }
    }   
    return obj;
}

以上是关于java反射实现前端接收实体对象,去除“null”字符串的主要内容,如果未能解决你的问题,请参考以下文章

反射实现java深度克隆

javaWeb中使用反射机制为数据库中表生成的实体类的的对象赋值?

java 反射

Java关于反射

java中怎么判断一个对象是否为空

R8 去除反射所需的 Kotlin 伴生对象