zoukankan      html  css  js  c++  java
  • 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()); } }
  • 相关阅读:
    JWT
    activate-power-mode安装与设置
    redis备份与恢复
    stub_status监控Nginx使用情况!
    php-fpm,cgi,fast-cgi,nginx,php.ini,php-fpm.conf,nginx.conf
    Nginx 413 Request Entity Too Large
    Quartz作业调度框架
    mysql 查看是否存在某一张表
    JSTL 核心标签库
    J2EE maven pom.xml常用的jar包
  • 原文地址:https://www.cnblogs.com/heyt/p/13572108.html
Copyright © 2011-2022 走看看