importlombok.extern.slf4j.Slf4j;importorg.apache.commons.lang3.StringUtils;importorg.springframework.beans.BeanUtils;importjava.beans.PropertyDescriptor;importjava.lang.reflect.Method;importjava.lang.reflect.Modifier;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.List;/***@authorheyt
* @date 2020/8/27
**/@Slf4jpublic classBeanNotNullUtil {public static ListvalidateProperty(Object validateObj) {return validateProperty(validateObj,(String[])null);
}
/***
*@paramcValidateObj 校验的实体类
*@paramcIgnoreProperties 排除不需要校验的属性
*@return
*/
public static ListvalidateProperty(Object cValidateObj, String... cIgnoreProperties) {
PropertyDescriptor[] targetPds=BeanUtils.getPropertyDescriptors(cValidateObj.getClass());
List ignoreList = (cIgnoreProperties != null ? Arrays.asList(cIgnoreProperties) : null);
List errList = new ArrayList<>();for(PropertyDescriptor targetPd : targetPds) {
Method readMethod=targetPd.getReadMethod();if (readMethod != null && (ignoreList == null || !ignoreList.contains(targetPd.getName()))) {try{if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) {
readMethod.setAccessible(true);
}
Object value=readMethod.invoke(cValidateObj);if (value instanceofString) {if(StringUtils.isEmpty((String) value)) {
errList.add(cValidateObj.getClass().getSimpleName()+ "." + targetPd.getName() + "不可为空");continue;
}
}if (value == null) {
errList.add(cValidateObj.getClass().getSimpleName()+ "." + targetPd.getName() + "不可为空");
}
}catch(Throwable ex) {
log.info(ex.getMessage());
}
}
}returnerrList;
}public static voidmain(String[] args) {//OrderInfoVO tOrderInfoVO = new OrderInfoVO();//tOrderInfoVO.setOrderAmount("123123");//tOrderInfoVO.setOrderNo("ijnuhygv");//tOrderInfoVO.setShopNo("asdfedc");String[] strs = {"insureTransaction","shopName","transactionType","transactionTime","transactionNo","transactionDetail"};//String[] strs = {"transactionType","transactionTime","transactionDetail",""};//
//List tLists = validateProperty(tOrderInfoVO,strs);//System.out.print(tLists.toString());
}
}