• 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()); } }
  • 相关阅读:
    杜教筛
    linux运维好书推荐:《高性能Linux服务器构建实战Ⅱ》热销中,附实例源码下载
    分布式监控系统ganglia配置文档
    基于Web应用的性能分析及优化案例
    一次Linux系统被攻击的分析过程
    Keepalived中Master和Backup角色选举策略
    linux运维好书《高性能Linux服务器构建实战Ⅱ》已出版发售,附封面照!
    并行分布式运维工具pdsh
    安全运维之:Linux系统账户和登录安全
    安全运维之:文件系统安全
  • 原文地址:https://www.cnblogs.com/heyt/p/13572108.html
Copyright © 2020-2023  润新知