用於校驗物件屬性是否為空的工具類
阿新 • • 發佈:2022-05-19
public class PropertyUtils { /** * 判斷屬性是否為null或"" * @param args * @return 是則返回true */ public static Boolean isEmpty(Object ...args){ for (Object arg : args) { if(arg instanceof String){ String s = String.valueOf(arg); if(StringUtils.isEmpty(s)) return true; }else { if(arg == null) return true; } } return false; } /** *判斷物件的屬性是否為空 * @param obj 傳入的物件 * @return */ public static Boolean isEmpty(Object obj) { Class<?> clazz = obj.getClass(); Field[] fields = clazz.getDeclaredFields(); try { for (Field field : fields) { field.setAccessible(true); Object o = field.get(obj); if(o == null){ return false; } if(o instanceof String){ if(o.equals("")) return false; } } } catch (IllegalAccessException e) { e.printStackTrace(); return false; } return true; } /** *判斷物件的屬性是否為空 * @param obj 傳入的物件 * @param exclude 排除的屬性 (不區分大小寫) * @return */ public static Boolean isEmpty(Object obj,String ...exclude) { Class<?> clazz = obj.getClass(); Field[] fields = clazz.getDeclaredFields(); try { outer: for (Field field : fields) { field.setAccessible(true); Object o = field.get(obj); String name = field.getName(); for (String arg : exclude) { if(name.equalsIgnoreCase(arg)) continue outer; } if(o == null){ return false; } if(o instanceof String){ if(o.equals("")) return false; } } } catch (IllegalAccessException e) { e.printStackTrace(); return false; } return true; } }