javaBean非空校验(借鉴的)



//校验实体类非空判断,精确到某个字段

import
lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author heyt * @date 2020/8/27 * */ @Slf4j public class BeanNotNullUtil { public static List<String> validateProperty(Object validateObj) { return validateProperty(validateObj,(String[])null); } /** * * @param cValidateObj 校验的实体类 * @param cIgnoreProperties 排除不需要校验的属性 * @return */ public static List<String> validateProperty(Object cValidateObj, String... cIgnoreProperties) { PropertyDescriptor[] targetPds = BeanUtils.getPropertyDescriptors(cValidateObj.getClass()); List<String> ignoreList = (cIgnoreProperties != null ? Arrays.asList(cIgnoreProperties) : null); List<String> 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 instanceof String) { 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()); } } } return errList; } public static void main(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<String> tLists = validateProperty(tOrderInfoVO,strs); // System.out.print(tLists.toString()); } }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM