一个对象的属性 既有 空字符串又有null,使用StringUtils.isBlank是判断不出来的
所以参考其他代码,自己封装了个方法,代码如下:
/** * 判断Object对象为空或空字符串 * @param obj * @return true为空 false非空 */ public static boolean isAllFieldNull(Object obj){ boolean flag = false; try { // 得到类对象 Class stuCla = (Class) obj.getClass(); //得到属性集合 ,getFields()只能获取public的字段,包括父类的。而getDeclaredFields()只能获取自己声明的各种字段, //包括public,protected,private。 Field[] fs = stuCla.getDeclaredFields(); int blankCount = 0; //遍历属性 for (Field f : fs) { //序列化处理 if ("serialVersionUID".equals(f.getName())) { blankCount++; } // 设置属性是可以访问的(私有的也可以) f.setAccessible(true); // 得到此属性的值 Object val = f.get(obj); //计数 属性为空个数 if (isBlank(val)) { blankCount++; } } if (blankCount ==fs.length){ flag = true; } }catch (Exception e){ return false; } return flag; }