import org.apache.commons.lang.StringUtils; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * 判断对象是否为空 * @param obj * @return */ public static Boolean isNotEmptyBean(Object obj) { Boolean flag = false; try { if (null != obj){ //获得类对象 Class<?> c = (Class<?>) obj.getClass(); //获得属性集合 Field[] fs = c.getDeclaredFields(); //获得方法体集合 Method[] methods = c.getDeclaredMethods(); //遍历属性 for (Field f : fs) { //设置属性是能够访问的(私有的也能够) f.setAccessible(true); String fieldGetName = parGetName(f.getName()); //判断属性是否存在get方法 if (!checkGetMet(methods, fieldGetName)) { continue; } //获得此属性的值 Object val = f.get(obj); //只要有1个属性不为空,那么就不是全部的属性值都为空 if (isNotEmpty(val)) { flag = true; break; } } } } catch (Exception e) { log.error("判断对象是否为空出错:" + e.getMessage()); } return flag; } /** * 拼接某属性的 get方法 * @param fieldName * @return String */ public static String parGetName(String fieldName) { if (null == fieldName || "".equals(fieldName)) { return null; } int startIndex = 0; if (fieldName.charAt(0) == '_') startIndex = 1; return "get" + fieldName.substring(startIndex, startIndex + 1).toUpperCase() + fieldName.substring(startIndex + 1); } /** * 判断是否存在某属性的 get方法 * @param methods * @param fieldGetMet * @return boolean */ public static Boolean checkGetMet(Method[] methods, String fieldGetMet) { for (Method met : methods) { if (fieldGetMet.equals(met.getName())) { return true; } } return false; }