1. 程式人生 > >java反射實現前端接收實體對象,去除“null”字符串

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”字符串