1. 程式人生 > >Java中將物件中屬性值為空字串設定為null

Java中將物件中屬性值為空字串設定為null

業務邏輯中需要將物件中為空字串的屬性轉換為null,簡單的一種方式是前端JS控制,如果為空字串則不傳到後臺,後臺接收到沒有值的屬性預設為null。這種方式會導致JS繁瑣。下面用後臺通過反射的方式來解決此問題。

    public static <T> T setNullValue(T source) throws IllegalArgumentException, IllegalAccessException, SecurityException {
        Field[] fields = source.getClass().getDeclaredFields();
        for (Field field : fields) {
            if (field.getGenericType
().toString().equals( "class java.lang.String")) { field.setAccessible(true); Object obj = field.get(source); if (obj != null && obj.equals("")) { field.set(source, null); } else if (obj != null) { String str = obj.toString
(); str = StringEscapeUtils.escapeSql(str);//StringEscapeUtils是commons-lang中的通用類 field.set(source, str.replace("\\", "\\" + "\\").replace("(", "\\(").replace(")", "\\)") .replace("%", "\\%").replace("*", "\\*").replace("[", "\\[").replace
("]", "\\]") .replace("|", "\\|").replace(".", "\\.").replace("$", "\\$").replace("+", "\\+").trim() ); } } } return source; }

只需要在處理業務前呼叫一下上述方法即可。