利用反射过滤对象的null值
生活随笔
收集整理的這篇文章主要介紹了
利用反射过滤对象的null值
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
項目的數據庫在 測試插入的時候 添加了很多空的數據進去 不是null 而是直接的varvhar格式的 字符串 "NULL" 這放在頁面上會讓人誤解是bug 所以 寫了一個方法_ 過濾 這些 NULL 的字符串_ 不讓他顯示在前臺頁面 寫在這里也僅僅為了 以后要用的時候能 copy 23333-------------------------
//用了泛型 可以是任意的對象傳入 public static <T> void nullFilter(T t){// 獲取實體類的所有屬性,返回Field數組Field[] field = t.getClass().getDeclaredFields();try {for (int j = 0; j < field.length; j++) { // 遍歷所有屬性String name = field[j].getName(); // 獲取屬性的名字name = name.substring(0, 1).toUpperCase() + name.substring(1); // 將屬性的首字符大寫,方便構造get,set方法String type = field[j].getGenericType().toString(); // 獲取屬性的類型// 只找String類型的 屬性進行過濾if (type.equals("class java.lang.String")) { //讓這個屬性可以被共有訪問field[j].setAccessible(true);Object obj = field[j].get(t);if(obj!=null){Method m = t.getClass().getMethod("get" + name);// 調用getter方法獲取屬性值String value = (String) m.invoke(t); //只要是null的字符串 先全轉成大寫 匹配大寫 并且給他空串還是nullif ("NULL".equals(value.toUpperCase())) {m = t.getClass().getMethod("set"+name,String.class);m.invoke(t, "");}}}}} catch (Exception e) {e.printStackTrace();} }轉載于:https://my.oschina.net/xlpapapa/blog/1491987
總結
以上是生活随笔為你收集整理的利用反射过滤对象的null值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用js实现分页
- 下一篇: GoldenGate单向复制配置(支持D